Description

When using FText::FromStringTable to initialize an FText variable in the constructor of an FStruct that inherits from FTableRowBase, an assert is caused due to recursion. The assert is as follows:

Assertion Failed: RecursionNotAllowed.Increment() == 1

Regression?: No
This occurs in 4.20

Steps to Reproduce
  1. Download the attached project
  2. Launch the project to Windows or any other platform
    Result: An assert is thrown, causing the program to close
    Expected: The program launches properly
Callstack
[2019.01.04-22.06.22:114][  0]LogWindows: Error: === Critical error: ===
[2019.01.04-22.06.22:114][  0]LogWindows: Error: 
[2019.01.04-22.06.22:115][  0]LogWindows: Error: Assertion failed: RecursionNotAllowed.Increment() == 1 [File:D:\matthew.clark_Main_Stream\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 4386] 
[2019.01.04-22.06.22:115][  0]LogWindows: Error: 
[2019.01.04-22.06.22:115][  0]LogWindows: Error: 
[2019.01.04-22.06.22:115][  0]LogWindows: Error: 
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x000007fefcf7bded KERNELBASE.dll!UnknownFunction []
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001404bf676 StringTableAssertion.exe!FWindowsErrorOutputDevice::Serialize() [d:\matthew.clark_main_stream\engine\source\runtime\core\private\windows\windowserroroutputdevice.cpp:63]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001402bcb77 StringTableAssertion.exe!FOutputDevice::LogfImpl() [d:\matthew.clark_main_stream\engine\source\runtime\core\private\misc\outputdevice.cpp:71]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001401fb129 StringTableAssertion.exe!FDebug::AssertFailed() [d:\matthew.clark_main_stream\engine\source\runtime\core\private\misc\assertionmacros.cpp:413]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x0000000140571fd9 StringTableAssertion.exe!FAsyncLoadingThread::ProcessAsyncLoading() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:4414]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x000000014059ceb0 StringTableAssertion.exe!FAsyncLoadingThread::TickAsyncThread() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:5243]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x000000014059b93b StringTableAssertion.exe!FAsyncLoadingThread::TickAsyncLoading() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:4948]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x0000000140555c25 StringTableAssertion.exe!FlushAsyncLoading() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:7216]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001407f9504 StringTableAssertion.exe!LoadPackageInternal() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1205]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001407f9008 StringTableAssertion.exe!LoadPackage() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1498]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001408150b2 StringTableAssertion.exe!StaticLoadObjectInternal() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:944]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x000000014081454c StringTableAssertion.exe!StaticLoadObject() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:993]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x0000000140816b45 StringTableAssertion.exe!FSoftObjectPath::TryLoad() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\softobjectpath.cpp:353]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001428f57df StringTableAssertion.exe!FStringTableEngineBridge::RedirectAndLoadStringTableAssetImpl() [d:\matthew.clark_main_stream\engine\source\runtime\engine\private\internationalization\stringtable.cpp:91]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001401d3573 StringTableAssertion.exe!FStringTableRedirects::RedirectTableIdAndKey() [d:\matthew.clark_main_stream\engine\source\runtime\core\private\internationalization\stringtablecore.cpp:597]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001401ba33c StringTableAssertion.exe!FText::FromStringTable() [d:\matthew.clark_main_stream\engine\source\runtime\core\private\internationalization\text.cpp:951]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x0000000140071532 StringTableAssertion.exe!FTestStruct::FTestStruct() [d:\a - user stuff\stringtableassertionmain\source\stringtableassertion\myactor.h:22]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001405cc5ae StringTableAssertion.exe!UScriptStruct::InitializeStruct() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\class.cpp:2509]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001426d4293 StringTableAssertion.exe!UDataTable::LoadStructData() [d:\matthew.clark_main_stream\engine\source\runtime\engine\private\datatable.cpp:114]
[2019.01.04-22.06.22:115][  0]LogWindows: Error: [Callstack] 0x00000001426fedde StringTableAssertion.exe!UDataTable::Serialize() [d:\matthew.clark_main_stream\engine\source\runtime\engine\private\datatable.cpp:196]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x0000000140547555 StringTableAssertion.exe!FAsyncPackage::EventDrivenSerializeExport() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:3591]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x0000000140574596 StringTableAssertion.exe!FAsyncPackage::ProcessImportsAndExports_Event() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:3915]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000014051e525 StringTableAssertion.exe!<lambda_f38d24ccf87b0cb414bbbfde65901bf5>::operator()() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:2713]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x0000000140572537 StringTableAssertion.exe!FAsyncLoadingThread::ProcessAsyncLoading() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:4464]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000014059ceb0 StringTableAssertion.exe!FAsyncLoadingThread::TickAsyncThread() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:5243]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000014059b93b StringTableAssertion.exe!FAsyncLoadingThread::TickAsyncLoading() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:4948]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x0000000140555c25 StringTableAssertion.exe!FlushAsyncLoading() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:7216]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x00000001407f9504 StringTableAssertion.exe!LoadPackageInternal() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1205]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x00000001407f9008 StringTableAssertion.exe!LoadPackage() [d:\matthew.clark_main_stream\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1498]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x00000001430d6f07 StringTableAssertion.exe!UEngine::LoadMap() [d:\matthew.clark_main_stream\engine\source\runtime\engine\private\unrealengine.cpp:12143]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x0000000143075afe StringTableAssertion.exe!UEngine::Browse() [d:\matthew.clark_main_stream\engine\source\runtime\engine\private\unrealengine.cpp:11600]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x0000000142817418 StringTableAssertion.exe!UGameInstance::StartGameInstance() [d:\matthew.clark_main_stream\engine\source\runtime\engine\private\gameinstance.cpp:503]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000013fb1befd StringTableAssertion.exe!FEngineLoop::Init() [d:\matthew.clark_main_stream\engine\source\runtime\launch\private\launchengineloop.cpp:3239]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000013fb2d22b StringTableAssertion.exe!GuardedMain() [d:\matthew.clark_main_stream\engine\source\runtime\launch\private\launch.cpp:163]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000013fb2d3ba StringTableAssertion.exe!GuardedMainWrapper() [d:\matthew.clark_main_stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000013fb3cd31 StringTableAssertion.exe!WinMain() [d:\matthew.clark_main_stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:276]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000014401fe06 StringTableAssertion.exe!__scrt_common_main_seh() [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x00000000771b59cd kernel32.dll!UnknownFunction []
[2019.01.04-22.06.22:116][  0]LogWindows: Error: [Callstack] 0x000000007741385d ntdll.dll!UnknownFunction []
[2019.01.04-22.06.22:116][  0]LogWindows: Error: 
[2019.01.04-22.06.22:140][  0]LogExit: Executing StaticShutdownAfterError
[2019.01.04-22.06.22:142][  0]LogWindows: FPlatformMisc::RequestExit(1)

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-68035 in the post.

2
Login to Vote

Cannot Reproduce
ComponentCore
Affects Versions4.204.214.22
Target Fix4.22
CreatedJan 4, 2019
ResolvedMar 13, 2019
UpdatedMar 13, 2019