This is a trending crash in 4.18.0. One case of this callstack occurred in 4.17.1, but then numerous have occurred in 4.18. Users have not provided any descriptions of their actions when the crash occurred.
Source Context
72 /** 73 * Removes all functions from this multi-cast delegate's invocation list that are bound to the specified UserObject. 74 * Note that the order of the delegates may not be preserved! 75 * 76 * @param InUserObject The object to remove all delegates for. 77 */ 78 void RemoveAll( const void* InUserObject ) 79 { 80 ***** if (InvocationListLockCount > 0) 81 { 82 bool NeedsCompacted = false; 83 for (FDelegateBase& DelegateBaseRef : InvocationList) 84 { 85 IDelegateInstance* DelegateInstance = DelegateBaseRef.GetDelegateInstanceProtected(); 86 if ((DelegateInstance != nullptr) && DelegateInstance->HasSameObject(InUserObject)) 87 { 88 // Manually unbind the delegate here so the compaction will find and remove it. 89 DelegateBaseRef.Unbind(); 90 NeedsCompacted = true; 91 } 92 }
repro steps currently unknown
Access violation - code c0000005 (first/second chance not available) UE4Editor_LevelEditor!FMulticastDelegateBase<FWeakObjectPtr>::RemoveAll() [multicastdelegatebase.h:81] UE4Editor_LevelEditor!SLevelEditor::~SLevelEditor() [sleveleditor.cpp:271] UE4Editor_Slate!SDockTab::~SDockTab() UE4Editor_LevelEditor!FLevelEditorModule::ShutdownModule() [leveleditor.cpp:288] UE4Editor_Core!FModuleManager::UnloadModulesAtShutdown() [modulemanager.cpp:694] UE4Editor!FEngineLoop::Exit() [launchengineloop.cpp:2888] UE4Editor!GuardedMain() [launch.cpp:177] UE4Editor!GuardedMainWrapper() [launchwindows.cpp:134] UE4Editor!WinMain() [launchwindows.cpp:210] UE4Editor!__scrt_common_main_seh() [exe_common.inl:253] kernel32!BaseThreadInitThunk() ntdll!RtlUserThreadStart()
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-51630 in the post.