Description

"It seems that deallocation of TLazySingleton<FInternationalization> causes unhandled exception. If DISABLE_LAZY_SINGLETON_DESTRUCTION=1 is provided - the build completes successfully"

Steps to Reproduce

1. Create mobile iOS project on Mac
2. Package project with [Link Removed]: "Engine/Build/BatchFiles/[Link Removed] BuildCookRun -project=<project>.uproject -archivedirectory=<dir> -Platform=IOS -config=Development -nop4 -build -nativizeAssets -SkipCookingEditorContent -UnversionedCookedContent -pak -compressed -package -prereqs -stage -archive -cook -manifests -createchunkinstall -chunkinstalldirectory="<dir2>" -chunkinstallversion=<version>" 3. When BuildPatchTool kicks in the build will hang or crash

Callstack

[Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/home/jenkins_node/UE4/Engine/Binaries/Linux/BuildPatchTool BuildRoot=/home/je'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x0000000000776167 in FOutputDeviceRedirector::Flush (this=0x10622f0 <FOutputDeviceRedirector::Get()::Singleton>) at Runtime/Core/Private/Misc/OutputDeviceRedirector.cpp:393 393 OutputDevice>Flush(); [Current thread is 1 (Thread 0x7fbd99c1b800 (LWP 8927))] (gdb) bt #0 0x0000000000776167 in FOutputDeviceRedirector::Flush (this=0x10622f0 <FOutputDeviceRedirector::Get()::Singleton>) at Runtime/Core/Private/Misc/OutputDeviceRedirector.cpp:393 #1 0x0000000000799996 in DefaultCrashHandler (Context=...) at Runtime/Core/Private/Unix/UnixPlatformCrashContext.cpp:695 #2 0x0000000000799bf5 in PlatformCrashHandler (Signal=6, Info=0x1096230 <FRunnableThreadUnix::MainThreadSignalHandlerStack+204144>, Context=0x1096100 <FRunnableThreadUnix::MainThreadSignalHandlerStack+203840>) at Runtime/Core/Private/Unix/UnixPlatformCrashContext.cpp:760 #3 <signal handler called> #4 _GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #5 0x00007fbd98c96801 in __GI_abort () at abort.c:79 #6 0x0000000000f3c3fb in abort_message () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #7 0x0000000000f3cbce in demangling_terminate_handler() () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #8 0x0000000000f3bd63 in std::terminate(void [Image Removed]()) () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #9 0x0000000000f3c5d6 in __cxxabiv1::failed_throw(cxxabiv1::cxa_exception*) () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #10 0x0000000000f3c56f in __cxa_throw () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #11 0x0000000000f31204 in std::1::throw_system_error(int, char const*) () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #12 0x0000000000f300fa in std::1::mutex::lock() () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #13 0x0000000000b12b2b in u_cleanup_64 () at Runtime/Core/Private/Unix/UnixPlatformMisc.cpp:1034 #14 0x00000000006d101d in FICUInternationalization::Terminate (this=0x7fbd97927600) at Runtime/Core/Private/Internationalization/ICUInternationalization.cpp:200 #15 0x00000000006d54b1 in FInternationalization::Terminate (this=0x102bec8 <TLazySingleton<FInternationalization>::GetLazy(void [Image Removed](void*))::Singleton>) at Runtime/Core/Private/Internationalization/Internationalization.cpp:282 #16 0x00000000006d5647 in FInternationalization::~FInternationalization (this=0x102bec8 <TLazySingleton<FInternationalization>::GetLazy(void [Image Removed](void*))::Singleton>) at Runtime/Core/Private/Internationalization/Internationalization.cpp:489 #17 0x00000000006f19d5 in FLazySingleton::Destruct<FInternationalization> (Instance=0x2 <GetEngineCrypto()::$_0::operator()() const>) at Runtime/Core/Public/Misc/LazySingleton.h:12 #18 TLazySingleton<FInternationalization>::Reset (this=0x102bec8 <TLazySingleton<FInternationalization>::GetLazy(void [Image Removed](void*))::Singleton>) at Runtime/Core/Public/Misc/LazySingleton.h:117 #19 TLazySingleton<FInternationalization>::~TLazySingleton (this=0x102bec8 <TLazySingleton<FInternationalization>::GetLazy(void [Image Removed](void*))::Singleton>) at Runtime/Core/Public/Misc/LazySingleton.h:98 #20 0x00007fbd98c99041 in __run_exit_handlers (status=0, listp=0x7fbd99041718 <_exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108 #21 0x00007fbd98c9913a in __GI_exit (status=<optimized out>) at exit.c:139 #22 0x00007fbd98c77b9e in __libc_start_main (main=0x65ed90 <main(int32, ANSICHAR**)>, argc=12, argv=0x7ffdf3edc6c8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffdf3edc6b8) at ../csu/libc-start.c:344 #23 0x000000000065b029 in _start ()

Have Comments or More Details?

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

11
Login to Vote

Won't Fix
ComponentPortal
Affects Versions4.24.2
CreatedFeb 18, 2020
ResolvedAug 31, 2021
UpdatedAug 31, 2021