As the title describes, closing a Geometry's Collection Dataflow Editor window when the ChaosVehiclePlugin is enabled is crashing the Unreal Editor when it is running with the -stompmalloc flag.
The licensee points out that Cast<UWorld>(Owner) in FPhysScene_Chaos::GetOwningWorld() doesn't work because Owner is the AChaosSolverActor being destroyed. It might make sense to store the owning world in a separate variable from the owning solver actor. Also, he thinks the owning world could have been destroyed itself at this point, so maybe it also shouldn't be a raw pointer.
It's worth noting the crash only happens when the ChaosVehiclesPlugin is enabled.
Run the 5.5 Unreal editor with the -stompmalloc flag (Ex: open the CMD and execute "...\Engine\Binaries\Win64\UnrealEditor.exe" - stompmalloc)
Create a blank project
Enable the ChaosVehiclesPlugin and restart the editor
On an empty scene, create a Cube
With the cube selected, change the mode to Fracture (SHIFT+6)
Press New+ to create a new Geometry Collection asset
Select a folder to save and give it a name
In the Dataflow section click the dropdown and at the top select DataflowAsset to create a new one
Select a folder to save and give it a name
Press Save
Press Create Geometry Collection
Double-click the created Geometry Collection, this will open up the Dataflow Editor Window
Closing the Dataflow Editor window will crash the Editor giving out a crash report
This process can be repeated afterwards by simply opening any Dataflow Editor window and closing it.
The ChaosVehiclesPlugin enabled is required, without it the crash does not reproduce.
Expected behavior: it should be possible to close the Dataflow Editor window.
Actual behavior: closing the Dataflow Editor window crashes the Editor.
LoginId:30374bff4d01f379a8e2069205531dea
EpicAccountId:c93f577739ed4d9c879e81a9b75e1500
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000017bd310e500
UnrealEditor_Engine!UObjectBaseUtility::IsA<UWorld>() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Public\UObject\UObjectBaseUtility.h:625]
UnrealEditor_Engine!FPhysScene_Chaos::GetOwningWorld() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\PhysicsEngine\Experimental\PhysScene_Chaos.cpp:1476]
UnrealEditor_ChaosVehicles!FChaosVehicleManager::DetachFromPhysScene() [D:\build\++UE5\Sync\Engine\Plugins\Experimental\ChaosVehiclesPlugin\Source\ChaosVehicles\Private\ChaosVehicleManager.cpp:104]
UnrealEditor_ChaosVehicles!IChaosVehiclesPlugin::PhysSceneTerm() [D:\build\++UE5\Sync\Engine\Plugins\Experimental\ChaosVehiclesPlugin\Source\ChaosVehicles\Private\ChaosVehiclesPlugin.cpp:27]
UnrealEditor_ChaosVehicles!V::TBaseRawMethodDelegateInstance::ExecuteIfSafe() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:536]
UnrealEditor_Engine!TMulticastDelegate<void __cdecl(FPhysScene_Chaos * __ptr64),FDefaultDelegateUserPolicy>::Broadcast() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:1079]
UnrealEditor_Engine!FPhysScene_Chaos::~FPhysScene_Chaos() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\PhysicsEngine\Experimental\PhysScene_Chaos.cpp:597]
UnrealEditor_Engine!FPhysScene_Chaos::`vector deleting destructor'()
UnrealEditor_ChaosSolverEngine!AChaosSolverActor::~AChaosSolverActor() [D:\build\++UE5\Sync\Engine\Intermediate\Build\Win64\UnrealEditor\Inc\ChaosSolverEngine\UHT\ChaosSolverActor.gen.cpp:573]
UnrealEditor_ChaosSolverEngine!AChaosSolverActor::`vector deleting destructor'()
UnrealEditor_CoreUObject!FObjectPurge::DestroyObjects() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp:827]
UnrealEditor_CoreUObject!IncrementalDestroyGarbage() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp:4851]
UnrealEditor_CoreUObject!IncrementalPurgeGarbage() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp:4525]
UnrealEditor_CoreUObject!UE::GC::PostCollectGarbageImpl<1>() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp:5557]
UnrealEditor_CoreUObject!UE::GC::FReachabilityAnalysisState::PerformReachabilityAnalysisAndConditionallyPurgeGarbage() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp:5746]
UnrealEditor_CoreUObject!TryCollectGarbage() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\GarbageCollection.cpp:6023]
UnrealEditor_Engine!UEngine::ConditionalCollectGarbage() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\UnrealEngine.cpp:1902]
UnrealEditor_Engine!UWorld::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\LevelTick.cpp:1699]
UnrealEditor_UnrealEd!UEditorEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\EditorEngine.cpp:1930]
UnrealEditor_UnrealEd!UUnrealEdEngine::Tick() [D:\build\++UE5\Sync\Engine\Source\Editor\UnrealEd\Private\UnrealEdEngine.cpp:550]
UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5869]
UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:188]
UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:123]
UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:277]
UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:317]
UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-240236 in the post.
0 |
Component | UE - Simulation - Physics |
---|---|
Affects Versions | 5.5.1 |
Target Fix | 5.6 |
Fix Commit | 39548121 |
---|
Created | Jan 27, 2025 |
---|---|
Resolved | Feb 10, 2025 |
Updated | Feb 10, 2025 |