Why app is receiving random signal 11?

Hi,

I’m having an issue where my game is crashing at random intervals of time. It seems that the application is receiving a kill signal from the OS and I cannot seem to understand why. I am hoping you can assist me with this.

The bug appears in Android builds. Win64 does not seem to have this problem at all.
Here are the logs seemingly related to the crash.
Any help is very appreciated.

Best Regards,
Tsuki

05-05 01:30:48.305 10882 10908 D UE4     : Signal 11 caught!

05-05 01:30:48.384   625   675 I WindowState: WIN DEATH: Window{4574f3d u0 com.Spooks.CollectionGame/com.epicgames.ue4.GameActivity}

05-05 01:30:48.384   625   675 W WindowManager: Force-removing child win Window{e8745d5 u0 SurfaceView} from container Window{4574f3d u0 com.Spooks.CollectionGame/com.epicgames.ue4.GameActivity}

05-05 01:30:48.421   625  3244 W WindowManager: Failed looking up window

05-05 01:30:48.421   625  3244 W WindowManager: java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@7b8fa00 does not exist

05-05 01:30:48.421   625  3244 W WindowManager: 	at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8736)

05-05 01:30:48.421   625  3244 W WindowManager: 	at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:8727)

05-05 01:30:48.421   625  3244 W WindowManager: 	at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1209)

05-05 01:30:48.421   625  3244 W WindowManager: 	at android.os.BinderProxy.sendDeathNotice(Binder.java:558)

05-05 01:30:48.421   625  3244 I WindowState: WIN DEATH: null

05-05 01:30:48.459   206   206 I Zygote  : Process 10882 exited due to signal (11)

05-05 01:30:48.508   625  6314 I ActivityManager: Process com.Spooks.CollectionGame (pid 10882) has died

05-05 01:30:48.509   625  6314 W ActivityManager: Force removing ActivityRecord{c891493 u0 com.Spooks.CollectionGame/com.epicgames.ue4.GameActivity t3203}: app died, no saved state

05-05 01:30:48.570   625  6314 I ActivityManager: Config changes=480 {1.0 234mcc?mnc en_GB ldltr sw600dp w960dp h528dp 320dpi lrg land finger -keyb/v/h -nav/h s.248}

Okay so signal 11 is Sigsegv, triggered from a segmentation fault (that is from accessing a nullptr ou dereferencing a deleted pointer).
Fortunately I’m not allocating any memory myself, and I can run this on win64 perfectly, so I can assume with a bit of certainty that I hit a bug with the engine… Any staff member mind a helping hand?

Hey Niktsuki,

Signal 11 crash is typically a GPU driver issue. Please include the type of device you’re working on and whether or not you’ve experienced this crash with another project on the same device. I’m also going to need for you to provide me the logs from your mobile device.

  • Attach your phone to the computer
  • Go here: C:\android-sdk-windows\tools
  • Open up Monitor.bat
  • Launch the program and save the logs

If you cannot get Monitor.bat to open, please go to:

  • C:\android-sdk-windows\tools\lib\monitor-x86
  • Open up Monitor.exe
  • Follow the instructions above

Make sure that you highlight all of the logs, because they do not save unless they’re highlighted.

Thank you!

Hi ,

My apologies with the late reply, I had a few issues with VS2015 SP2 and the current build of UE4 itself.

Here is the log [link text][1] just before opening the game and until it crashed with Signal 11.

Thank you for your time!

89755-log.txt (51.3 KB)

I kept working on it and using the monitor, it seems one of my TAssetPtr is deleted out of nowhere while being used, Not sure what I can do to keep it alive, and it only happens for Android. The TAssetPtr contains a UDataTable. Really what worries me here is that this does not happen for Windows. I’ll keep re-loading it temporarily but I hope this is a fixable problem…

Niktsuki,

Are you able to provide me a sample project of a similar set up? Have you gotten this to reproduce with a new project?

Looking forward to hearing back from you, thanks!

Hi ,

My apologies for not finishing up here. I ended up finding the issue.

I was using TAssetPtr as a means to safely retrieve asset references from blueprint derived objects in C++, and I was using a single FStreamableManager to load these assets.

In FStreamableManager’s SimpleAsyncLoad and Synchronous it is stated that “a hard reference is made to the object”, and is only released when “Unload” is called. This is not true, as the object gets garbage collected unless I create a proper counted reference to the loaded object (via UPROPERTY or TShared type). As TAssetPtr is a weak reference I found the problem the hard way as it suddenly became a nullptr.

I hope I’m explaining this in an understandable way. You can set this as resolved I suppose.