Crashes in LoadPackageInternal

Engine Version: GitHub Source - promoted branch of 3rd June 2015

Environment: Dedicated Server - Client, Multiplayer Game

Issue: Two independent crashes in same engine method LoadPackageInternal.


first one is a client crash and occurs during gameplay “randomly”.
second one happens when we hook up our sound system completly and start a dedicated server. server then crashes during launch.

Both crashes don’t happen while using editor, they just happen in server/client builds.

What was done to resolve/ find a solution of issue:

  • Clean checkout of our git repository + engine, fully new setup, rebuild
  • Tried to put some logs in ResolveName method: Just before crash occurs (@server), package to load is nothing (empty line).
  • Tried to downgrade to 4.8.1 (where crash might be fixed? → UE-17194 LoadPackageInternal may crash due to corrupted linkers https://forums.unrealengine.com/showthread.php?74048-4-8-1-Hotfix-is-live! ) but that didn’t work due to newer file versions in our used promoted version compared to 4.8
  • Checked out nearly every newer promoted version but they caused other errors (some UMG widgets don’t find outer resources and engine crashes when trying to compile them after PIE, lighting on normal mapped terrain renders thick black lines, etc.)

What can you suppose we should do? We would be happy if there is a way to fix these crashes in our engine version (e.g. cherry pick some engine commits). Otherwise we could need some support for upgrading to a newer promoted version.


Client Crash (“Randomly” occuring):

Assertion failed: !Result || Result->LinkerLoad == Linker [File:C:\projects\submerge\git_submerge-unreal\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp] [Line: 1055] 

KERNELBASE.dll
Submerge.exe!FOutputDeviceWindowsError::Serialize() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
Submerge.exe!FOutputDevice::Logf__VA() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\core\private\misc\outputdevice.cpp:144]
Submerge.exe!FDebug::AssertFailed() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\core\private\misc\outputdevice.cpp:355]
Submerge.exe!LoadPackageInternal() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1055]
Submerge.exe!ResolveName() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:677]
Submerge.exe!StaticLoadObjectInternal() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:764]
Submerge.exe!StaticLoadObject() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:826]
Submerge.exe!UGameEngine::Init() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\engine\private\gameengine.cpp:436]
Submerge.exe!FEngineLoop::Init() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\launchengineloop.cpp:2046]
Submerge.exe!GuardedMain() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\launch.cpp:136]
Submerge.exe!GuardedMainWrapper() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
Submerge.exe!WinMain() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
Submerge.exe!__tmainCRTStartup() [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
KERNEL32.DLL
ntdll.dll
ntdll.dll

Server Crash (When using our full sound system during startup)

Fatal error!

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000000

SubmergeServer.exe!FCrc::StrCrc32<wchar_t>() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\core\public\misc\crc.h:28]
SubmergeServer.exe!FAsyncIOSystemBase::QueueDestroyHandleRequest() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\core\private\serialization\asynciosystembase.cpp:100]
SubmergeServer.exe!LoadPackageInternal() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1041]
SubmergeServer.exe!ResolveName() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:677]
SubmergeServer.exe!StaticLoadObjectInternal() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:764]
SubmergeServer.exe!StaticLoadObject() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:826]
SubmergeServer.exe!UGameEngine::Init() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\engine\private\gameengine.cpp:436]
SubmergeServer.exe!FEngineLoop::Init() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\launchengineloop.cpp:2046]
SubmergeServer.exe!GuardedMain() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\launch.cpp:136]
SubmergeServer.exe!GuardedMainWrapper() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
SubmergeServer.exe!WinMain() [c:\projects\submerge\git_submerge-unreal\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
SubmergeServer.exe!__tmainCRTStartup() [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
KERNEL32.DLL
ntdll.dll
ntdll.dll

Hi ,

Thanks for your report. We have assigned this issue to a member of our support staff, and they will begin investigation as soon as possible. If we are unable to reproduce issue, or we need additional information, our staff member will comment here with additional questions. Otherwise, we will post an ‘Answer’ once we have logged issue in our bug database or we have a solution for it.

In meantime, please be sure to review our suggestions for how to report a bug, and feel free to edit your post if you have additional information to provide:

Thanks!

Hey -

When you mention crashing randomly is there any action that is being preformed prior to crash that is consistent (jumping, attacking, dodging, etc.)? Also when you mention hooking up sound system, what does that include? If possible could you reproduce sound setup in a new project or list steps for setup so I can try it on my end? Let me know if you can think of any more information that would help me reproduce either of these crashes locally.

Cheers

Hi ,

thank you for fast reply.

Some more general information first: game we make is a multiplayer RTS called Submerge (Authoritive dedicated server, simulated/predicted clients). We have units based on ACharacter with abilities (using GameplayAbility system). Our UI is completly done in UMG. HP bars use experimental WidgetComponent.

random crashes don’t follow a specific scheme. They are also rare and therefore hardly reproducible.

Our sound system is done completely in blueprints. It is an Actor and spawned in BeginPlay of PlayerController after map load on client. We add a UnitSoundComponent to our units and ProjectileSoundComponent to projectiles. Both use our sound system to play sound cues. sound system also has a radio component which has no functionality implemented. So far it is working.
As soon as we hook up some implementation on our radio component server and client builds crash during launch. radio component uses BP enums, a data table (created using a BP struct), sound classes, sound mixes, and plays several sound waves and cues. Everything works in editor and just crashes in a build.

builds are done using ProjectLauncher.

  • Build Configuration: Development
  • Build and Build UAT are checked
  • Cook by book for WindowsNoEditor and WindowsServer
  • Culture: en
  • Maps: MainMenu and GameLevel
  • No checks in Release/DLC/Patching Settings and Advanced Settings
  • Some additional cooker options to include DataTables which aren’t referenced anywhere
  • Package is set to Package & store locally
  • Do not Deploy
    builds are then copied manually somewhere from Submerge/Saved/StagedBuilds.

Testing sound system in another project isn’t that easy because it references units and other game classes.

Is currently given information enough for you to help us? Would server build with pdb help you to find problem? I also attached server and client logs, dmp and xml files.

Hi ,

Can you show me a screenshot of your Widget blueprint graph as well as a sample screenshot of where you call struct that is crashing? Do you have a callstack you can post here?

Hi ,

sorry, I don’t know about which widget blueprint and struct you are talking. crashlogs are also included in files in my last post.

callstack I’m looking for is error message that appears just after editor crashes. It has some information that isn’t present in logs. Unfortunately without steps to reproduce this crash on our end there is very little we can do. struct I’m referencing is in regards to this line in your post:

" radio component uses BP enums, a data table (created using a BP struct), sound classes, sound mixes, and plays several sound waves and cues. Everything works in editor and just crashes in a build."

I’d like to see where it is being utilized in your blueprints so I can see if there is anything there I’ll be able to reproduce on my end.

Hi ,

on friday we had same errors with our Blueprint version of GameInstance. We didn’t change anything on C++ side of GameInstance nor BP side. At end of post I attached callstack when executing a dedicated server. assets were cooked using settings of my last post. In editor everything works. What we found out is, that crash causing Linker->Filename starts with multiple 0 values which will later in callstack result to a nullptr, see attached image.

Fortunately, we were able to solve issues for now by merging some engine commits of hotfixes for 4.8 into our version. We searched for integrates which could possibly have something to do with following fixes:

  • UE-17087 Assertion failed: !Result || Result->LinkerLoad == Linker crash
  • UE-17194 LoadPackageInternal may crash due to corrupted linkers

We hope, that these fixes are also included in 4.9 and that everything works after updating to release version. If you can provide some better way to handle this issue right now, any help is appreciated.

Hi ,

I’m happy to hear this is working for you now. You did exactly what we would recommend when dealing with source if a commit is viable for fixing a specific error. I am going to mark this as answered for tracking purposes. If you experience this error again, please comment back and we’ll take another look.