Hello Guest

Author Topic: new crash on Samsung devices on Android 4.4.2 (maybe not tk2d related though)  (Read 9359 times)

tayl0r

  • 2D Toolkit
  • Newbie
  • *
  • Posts: 39
    • View Profile
Hi,

My app has over 100k dau on Android (so a very high sample size) and I'm seeing a huge increase in crashes from devices running Android 4.4.2. The same device, the same application version, the only difference is the OS version- and the crash rate is literally 2-5x higher once the device upgrades to Android 4.4.2.

I'm already using 32 bit display buffer, *not* using multithreaded rendering or OpenGL 3.0, so those things are not the issue.

I see that NGUI has an Android 4.4.2 crash that might be the same thing (http://www.tasharen.com/forum/index.php?topic=8415.0) but I'm using 2D Toolkit (and some of the built in Unity 3d shaders + 3d meshes, Ragespline, lots of other home built stuff too), not NGUI.

The NGUI crash from that thread is related to resizing the number of verts in a VBO, so I thought maybe tk2d was doing that same type of thing, and disabling it might be a workaround for the crash.

Here is all the info I can get from Crittercism:

Crash Reason:
Code: [Select]
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 7bf28700 Build fingerprint:
'Verizon/jfltevzw/jfltevzw:4.4.2/KOT49H/I545VRUFNC5:user/release-keys' Revision: '11' pid: 771, tid: 789,
name: UnityMain >>> com.MyOrgName.MyBundleId <<<
r0 7bf28700 r1 832499e0 r2 000001c0 r3 00000000 r4 000001c0 r5 7791b994 r6 7bf28700 r7 832499a0 r8 000001c0 r9 00000001 sl 000001c0 fp 00000001 ip 00000006 sp 7791b918 lr 75fdf10b pc 4007e27e cpsr 0000000b

Crashed Thread:
Code: [Select]
java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 849fb700
Build fingerprint: 'Verizon/jfltevzw/jfltevzw:4.4.2/KOT49H/I545VRUFNC5:user/release-keys'
Revision: '11'
pid: 5915, tid: 5932, name: UnityMain >>> com.MyOrgname.MyBundleId <<<
r0 849fb700 r1 781f3880 r2 000001c0 r3 00000000
r4 000001c0 r5 77954994 r6 849fb700 r7 781f3840
r8 000001c0 r9 00000001 sl 000001c0 fp 00000001
ip 00000006 sp 77954918 lr 7601710b pc 4009327e cpsr 0000000b
at libc.__memcpy_base(__memcpy_base:261)
\at Unknown.ffffffff(Unknown Source)

The NGUI thread mentions that the crash is inside of the PowerVR driver when it tries to do a memcpy, and memcpy is the reason for this crash here as well, so that's why I think it might be the same thing.

Any ideas?

(cross posted to the Unity forums here: http://forum.unity3d.com/threads/246258-2-5x-increase-in-crashes-from-Samsung-devices-on-Android-4-4-2?p=1628988#post1628988)

ben13j

  • 2D Toolkit
  • Newbie
  • *
  • Posts: 5
    • View Profile
I'm also having this issue. From my understanding is a problem related to Adreno GPU's and mesh resizing.

Some other folks are having the same issue without using Unity:
https://github.com/opensciencemap/vtm/issues/52

Could this be linked to the way 2d toolkit resize mesh to display sprites from atlas ?

I will keep digging into the issue, but in worst case scenario you can disable your app for devices that use a Adreno GPU.

tayl0r

  • 2D Toolkit
  • Newbie
  • *
  • Posts: 39
    • View Profile
AFAIK this has been fixed by Unity in Unity 4.5.

I'm not 100% sure since our crash reporting data has gotten a bit messy but I do think it solved the problem.

ben13j

  • 2D Toolkit
  • Newbie
  • *
  • Posts: 5
    • View Profile
I'm building with unity 4.5.1 and I still have the issue. I don't know if anyone else is still having this problem ?

tayl0r

  • 2D Toolkit
  • Newbie
  • *
  • Posts: 39
    • View Profile
Hmm. That sucks =(

Personally I was never able to reproduce it so I'm only going off of our crash data.

From the Unity 4.5 release notes:
* Fixed crash on Android 4.4.2 when running on certain Adreno GPUs.

Maybe you're getting a different crash?
« Last Edit: June 27, 2014, 04:36:36 pm by tayl0r »

ben13j

  • 2D Toolkit
  • Newbie
  • *
  • Posts: 5
    • View Profile
That's a possibility, but my crash only occurs on Adreno based devices.

I will keep digging.