Fatal Crash from async loading and phys materials

This crash seems to possibly be caused by async loading.
It never happend before 4.16 but ingame crashes and fatal errors are now very frequent!

This screenshot is from a crashed shipping release build (built from project launcher), in a multiplayer online session with 2 other connected clients.

150291-asynccrash.jpg

I currently don’t have any more information, but will begin investigating these crashes very soon.
The other fatal error crashes give no error details, only the message “Fatal error”, and since we’re currently playtesting shipping release builds there are no log specifics.

I appreciate any advice. /Best Regards

These are some details from a crash i caught running a dev build:

"[2017.05.27-15.55.49:160][682]LogPhysics:Error: FBodyInstance::GetSimplePhysicalMaterial : GEngine not initialized! Cannot call this during native CDO construction, wrap with if(!HasAnyFlags(RF_ClassDefaultObject)) or move out of constructor, material parameters will not be correct.
[2017.05.27-15.55.49:170][682]LogWindows: Windows GetLastError: The operation completed successfully. (0)
[2017.05.27-15.55.49:412][682]LogWindows:Error: === Critical error: ===
[2017.05.27-15.55.49:412][682]LogWindows:Error: 
[2017.05.27-15.55.49:412][682]LogWindows:Error: Assertion failed: GEngine->DefaultPhysMaterial != NULL [File:H:\UnrealEngine-release\Engine\Source\Runtime\Engine\Private\PhysicsEngine\BodyInstance.cpp] [Line: 3583] "

The same fatal error crash occured again, but the dev build log only gave this information, no other details on the error:

"
[2017.05.27-16.42.17:342][956]LogWindows:Error: === Critical error: ===
[2017.05.27-16.42.17:342][956]LogWindows:Error: 
[2017.05.27-16.42.17:343][956]LogWindows:Error: Fatal error!
[2017.05.27-16.42.17:343][956]LogWindows:Error: 
[2017.05.27-16.42.17:343][956]LogWindows:Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x00000058
"

Another wierd thing I noticed after doing some tests is that the phys materials on certain actors would begin to fail if servertraveling to a few different levels, and then back to the first one again. They will work first for a while but then start to return access none errors, and not work again even if loading different levels.

"
[2017.05.27-17.05.54:388][332]LogScript:Warning: Accessed None trying to read property CallFunc_BreakHitResult_PhysMat5
	MyCharacter_C /Game/Maps/SomeLevel.SomeLevel:PersistentLevel.MyCharacter_C_0
"

Further testing indicates these issues only appear in the built and packaged game (development and shipping), not in the editor.

Have you tried disabling the Event-Driven Loader? A few people have reported issues with it so far, seems it’s not yet quite ready for a release.

Greetings. Thanks for your advice, I will try to disable it, do a rebuild and investigate, I’ll return with results soon. /Best Regards

Disabling event driven loading did not change anything unfortunately. The same issues and crashes still occur.

139635-fatal.jpg

There is defenitely something wrong with phys engine / phys materials, sometimes the fatal crash is a bit slow, and there is time to observe how all phys materials in the entire level returns errors/access none, but not untill after a few server travels.

My method to reproduce the issue when I test it is:
Load level 1, run around a while, servertravel to level 2, level 3, level 4, and back to level 1, then run level 1 untill physmaterials break, and eventually fatal error crashes.

Edit: Im still not sure what triggers the problem, could be many factors.

Exception thrown: read access violation.

this was nullptr.

I’ve spent days now trying to find the source of the problem, but I’ve not been able to narrow it down yet. Here are some more error details from debugging in visual studio:

--- h:\unrealengine-release\engine\source\runtime\engine\private\physicsengine\physicalmaterial.cpp 


#if WITH_PHYSX
PxMaterial* UPhysicalMaterial::GetPhysXMaterial()
{
00000001410CCD20  push        rbx  
00000001410CCD22  sub         rsp,20h  
	if((PMaterial == NULL) && GPhysXSDK)
00000001410CCD26  cmp         qword ptr [rcx+68h],0  (<------BREAK POINT)



>	Game-Win64-Shipping.exe!UPhysicalMaterial::GetPhysXMaterial() Line 114	C++

Still working on reproducing this issue…

The phys material crashes seems to be resolved by overwriting all Inifnity Blade Effects, Grass Lands and Fire Lands content packs with the latest 4.16 downloads. Not sure why, but yeah.

The async crash still happens on servertravel in multiplayer sessions. I will conduct some more testing on this with the latest 4.16.1 hotfix and return with results.

This crash still happens with the 4.16.1 version, in a 2 player online session between 2 different computers, after a few servertravels, traveling back to a previous level will trigger this crash.

Since the phys material crashes seems resolved for now, (or atleast avoided), I’ll run a few tests tomorrow with async and event driven loading disabled and return with results.

150291-asynccrash.jpg

Disabling async and event driven loading prevents this particular crash, but still cause “fatal error” crashes (with no other message or debug information) on Windows 10 clients. So far not on Windows 7, and seemingly less frequent.

yo!

I got the same/similar problem with a game which is currently on 4.16.1

We are using seamless travel and the error appears now and then.
I can enforce it by starting on Map A and change to Map B and then back to Map A. (crashes most of the time, mostly on 2 specific maps, but in general pretty random)

edit: it never happened to me when I did not move after switching the map and switching the map again, but when I moved through the level it crashes most of the time

The Error windows returns is empty but using the Debugger of VS:

PxMaterial* UPhysicalMaterial::GetPhysXMaterial()
{

if((PMaterial == NULL) && GPhysXSDK) "<- this was nullptr"

Well from what I could figure out

 #if WITH_PHYSX
 PxMaterial* UPhysicalMaterial::GetPhysXMaterial()

Problems related to this was content related (somehow), are you using any infinity blade assets etc? Try to overwrite all assets with the latest 4.16 releases from the marketplace, atleast this solved the issue for me, somehow. :S It was very difficult to debugg futher.

If not using any marketpalce assets, you can attempt a “process of elimination” and remove content untill the crash stops occurring. This is one way of narrowing down the problem but time consuming. If the crash still happens with all content removed/replace the issue must be triggered by something else.

Still getting a lot of crashes on one of the testing machines…
This is the only warning I can find in the logs:

LogLinker:Warning: Hitch on async loading of Texture2D /Game/Meshes/props/box.box_0; this export was not properly precached.

Its usually different meshes and textures that give this warning, seemingly random. Async loading and event driven loading is disabled in the project settings…