Description

After  opens the preloaded level using Asset Manager, opening another level before unloading the level will crash. Because AssetManager holds FStreamableHandle of the level, garbage collection is not performed correctly.

You can avoid this crash by commenting out UEngine :: VerifyLoadMapWorldCleanup. However, re-opening that level will cause another crash. This is because UE4 tries to use UWorld have many null properties present in memory.

Steps to Reproduce
  1. Open preloaded level B using Asset Manager in level A
  2. Open level A before unloading level B
  3. Crash

or

  1. Open attached repro proj.
  2. Play Standalone
  3. press 1 key
  4. press 2 key
  5. press 2 key
  6. crash
Callstack

 

Fatal error: [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\UnrealEngine.cpp] [Line: 12966] World /Game/Maps/LevelB.LevelB not cleaned up by garbage collection! (Object is not currently rooted)
UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:417]
UE4Editor_Engine!UEngine::VerifyLoadMapWorldCleanup() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:12966]
UE4Editor_Engine!UEngine::LoadMap() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:12000]
UE4Editor_Engine!UEngine::Browse() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:11527]
UE4Editor_Engine!UEngine::TickWorldTravel() [d:\build\++ue4\sync\engine\source\runtime\engine\private\unrealengine.cpp:11725]
UE4Editor_Engine!UGameEngine::Tick() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gameengine.cpp:1353]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3699]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:174]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:276]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]
kernel32
ntdll

 

If comment out UEngine::VerifyLoadMapWorldCleanup

Engine!UGameInstance::CreateGameModeForURL() [d:\build\release-4_21_0\engine\source\runtime\engine\private\gameinstance.cpp:1155]
 UE4Editor_Engine!UWorld::SetGameMode() [d:\build\release-4_21_0\engine\source\runtime\engine\private\world.cpp:3540]
 UE4Editor_Engine!UEngine::LoadMap() [d:\build\release-4_21_0\engine\source\runtime\engine\private\unrealengine.cpp:12207]
 UE4Editor_Engine!UEngine::Browse() [d:\build\release-4_21_0\engine\source\runtime\engine\private\unrealengine.cpp:11527]
 UE4Editor_Engine!UEngine::TickWorldTravel() [d:\build\release-4_21_0\engine\source\runtime\engine\private\unrealengine.cpp:11725]
 UE4Editor_Engine!UGameEngine::Tick() [d:\build\release-4_21_0\engine\source\runtime\engine\private\gameengine.cpp:1353]
 UE4Editor!FEngineLoop::Tick() [d:\build\release-4_21_0\engine\source\runtime\launch\private\launchengineloop.cpp:3699]
 UE4Editor!GuardedMain() [d:\build\release-4_21_0\engine\source\runtime\launch\private\launch.cpp:174]
 UE4Editor!GuardedMainWrapper() [d:\build\release-4_21_0\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
 UE4Editor!WinMain() [d:\build\release-4_21_0\engine\source\runtime\launch\private\windows\launchwindows.cpp:276]
 UE4Editor!__scrt_common_main_seh() [d:\agent\_work\2\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]

 

 

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentGameplay
Affects Versions4.21.1
Target Fix4.23
Fix Commit5371058
CreatedJan 29, 2019
ResolvedMar 12, 2019
UpdatedMay 9, 2019