Description

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       			}
Steps to Reproduce

repro steps currently unknown

Callstack
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()

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-51630 in the post.

0
Login to Vote

Fixed
ComponentTools
Affects Versions4.174.18
Target Fix4.19
Fix Commit3727658
Main Commit3739980
Release Commit3813083
CreatedOct 26, 2017
ResolvedOct 31, 2017
UpdatedApr 27, 2018