Description

When a widget with a spinbox is calls it's Destructor with "Multithreaded Destruction" enabled the engine crashes. I have tested in 4.23.1, 4.24.3, and 4.26 Main with "Multithreaded Destruction" disabled and didn't run into any issues.

You can find a 4.24 project at [Link Removed].

Found in 4.24.3 CL#11590370
Reproduced in 4.23.1 CL#9631420, 4.26 Main CL#11641976

Steps to Reproduce

1. Create a C++ project.
2. Enable "Multithreaded Destruction" in Project Settings.
3. Create a HUD C++ class(DemoHUD) that creates a widget and Adds it to the Viewport in BeginPlay().
4. Make a gamemode blueprint (DemoGamemode) that has DemoHUD as the default HUD.
5. Play the scene.
6. Stop playing the scene.

Result: The engine crashes when sotpping the scene.

Expected: The engine doesn't crash.

Callstack

LoginId:9a8d08644d702ac44f074090ac311686
EpicAccountId:580fb2844ad145d79dff08f42acea7c6

Assertion failed: IsInGameThread() || IsInSlateThread() || IsInAsyncLoadingThread() [Link Removed] [Line: 210]

UE4Editor_Core!AssertFailedImplV() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:105]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:455]
UE4Editor_Slate!FSlateApplication::Get() [d:\build\++ue4\sync\engine\source\runtime\slate\public\framework\application\slateapplication.h:210]
UE4Editor_Slate!FSlateEditableTextLayout::~FSlateEditableTextLayout() [d:\build\++ue4\sync\engine\source\runtime\slate\private\widgets\text\slateeditabletextlayout.cpp:197]
UE4Editor_Slate!SEditableText::~SEditableText() [d:\build\++ue4\sync\engine\source\runtime\slate\private\widgets\input\seditabletext.cpp:23]
UE4Editor_SlateCore!FSlotBase::~FSlotBase() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\slotbase.cpp:76]
UE4Editor_SlateCore!SHorizontalBox::FSlot::`scalar deleting destructor'()
UE4Editor_SlateCore!SBoxPanel::~SBoxPanel()
UE4Editor_SlateCore!FSlotBase::~FSlotBase() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\slotbase.cpp:76]
UE4Editor_SlateCore!SCompoundWidget::~SCompoundWidget()
UE4Editor_SlateCore!FSlotBase::~FSlotBase() [d:\build\++ue4\sync\engine\source\runtime\slatecore\private\slotbase.cpp:76]
UE4Editor_Slate!SConstraintCanvas::FSlot::`scalar deleting destructor'()
UE4Editor_Slate!TIndirectArray<SConstraintCanvas::FSlot,TSizedDefaultAllocator<32> >::~TIndirectArray<SConstraintCanvas::FSlot,TSizedDefaultAllocator<32> >() [d:\build\++ue4\sync\engine\source\runtime\core\public\containers\indirectarray.h:65]
UE4Editor_Slate!SConstraintCanvas::~SConstraintCanvas()
UE4Editor_SlateCrash424!AMyHUD::~AMyHUD()
UE4Editor_SlateCrash424!AMyHUD::`vector deleting destructor'()
UE4Editor_CoreUObject!FAsyncPurge::Run() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\garbagecollection.cpp:488]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp:96]

Have Comments or More Details?

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

1
Login to Vote

Fixed
ComponentUE - Foundation - Core - UObject
Affects Versions4.23.14.24.34.26
Target Fix4.26
Fix Commit12295119
Main Commit13308998
CreatedFeb 28, 2020
ResolvedApr 14, 2020
UpdatedJun 1, 2020