We have seen about 500% increase on this crash after moving from 2017.4 to 2018.4 and switching using IL2CPP. Unfortunately stack trace doesn’t tell much.
Pre-IL2CPP crash that occurred rarely:
Caused by java.lang.Error: signal 6 (SIGABRT), code -6 (?), fault addr --------
Build fingerprint: 'samsung/j6ltedx/j6lte:8.0.0/R16NW/J600GDXU3ARK5:user/release-keys'
Revision: '2'
pid: 8907, tid: 9048, name: UnityMain >>> net.test.text <<<
r0 00000000 r1 00002358 r2 00000006 r3 00000008
r4 000022cb r5 00002358 r6 cb97ec80 r7 0000010c
r8 00000056 r9 cd8d6e00 sl cb97ee90 fp cb97ecf4
ip 00000000 sp cb97ec70 lr f59e44d7 pc f5a1580c cpsr 00000056
at libc.tgkill + 12(tgkill:12)
at libc.abort + 54(abort:54)
at libc.__libc_fatal + 24(__libc_fatal:24)
at libc.__pthread_internal_find(long) + 88(__pthread_internal_find:88)
at libc.pthread_gettid_np + 2(pthread_gettid_np:2)
at libc.pthread_kill + 18(pthread_kill:18)
at libmono.0023fef0()
at libmono.mono_thread_suspend_all_other_threads + 1424(mono_thread_suspend_all_other_threads:1424)
at libmono.mono_unity_jit_cleanup + 28(mono_unity_jit_cleanup:28)
at libunity.0072fba0()
at libunity.00705764()
at libunity.002df31c()
at libunity.002e2148()
at base.00116113()
Post IL2CPP tgkill crashes that increased by a huge margin:
Caused by java.lang.Error: signal 6 (SIGABRT), code -6 (?), fault addr --------
Build fingerprint: 'samsung/grandppltedx/grandpplte:6.0.1/MMB29T/G532GDXU1ASA5:user/release-keys'
Revision: '5'
pid: 3179, tid: 3466, name: Thread-6859 >>> net.test.text <<<
r0 00000000 r1 00000d8a r2 00000006 r3 833ae978
r4 833ae980 r5 833ae930 r6 00000000 r7 0000010c
r8 000004d6 r9 b433de44 sl 00000008 fp b4323820
ip 00000006 sp 833ae7d0 lr b6cdfde5 pc b6ce21d4 cpsr 833ae4e0
at libc.tgkill + 12(tgkill:12)
at libc.pthread_kill + 32(pthread_kill:32)
at libc.raise + 10(raise:10)
at libc.__libc_android_abort + 34(__libc_android_abort:34)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
Something seems wrong about this call stack. Nothing in libmono should be running for an IL2CPP build. Are you sure this is from an IL2CPP build of the app?
My bad, the first log was from pre-IL2CPP version, it was happening rarely back then, but the second one is the one that increased this crash report by 500% after IL2CPP swap, it’s the one I’m concerned about right now.
Oops, sorry, I did not notice that before. I wonder, is it possible ti symbolicate the send call stack? It looks like something is wrong there, as all of those frames are probably not in abort.
out of curiosity, the logs you’re showing, where are they from? Because it seems like there was already an attempt to symbolicate the stacktrace, and it didn’t go well.
May that’s how Fabric Crashlytics prints them, if you would try to crash your app locally, and check the logcat, the information should look like the one I posted above.
at libc.tgkill + 12(tgkill:12)
at libc.pthread_kill + 32(pthread_kill:32)
at libc.raise + 10(raise:10)
at libc.__libc_android_abort + 34(__libc_android_abort:34)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
at libc.abort + 4(abort:4)
looks incorrect, either it’s a memory corruption, or the stacktrace was resolved incorrectly
Terrible news, so we have actually nothing to help us to resolve this at all. What else would you suggest me to do to get some information about this crash?
Yeah, I have tried it on J6 and J7 but sadly couldn’t produce the problem. This problem is not specific to those phones either, see the screenshots attached.
I see, that’s too bad…that makes things very difficult to fix. The only thing I can suggest, is to try to update to latest 2018 LTS, maybe it will contain stability fix to your problem.
Thanks for your time anyway, I couldn’t find anything related to this issue on 2018.4 and 2018.5 releases and to be honest kind of scared to upgrade, so far 2018 LTS upgrades introduced nothing but new crashes/bugs for us, but I guess I’ll give it a try.
I’m finally able to reproduce the problem, and did it on development mode however log is exactly the same.
08-09 14:47:46.956 14765 15279 F art : art/runtime/thread.cc:1238] Native thread exited without calling DetachCurrentThread: Thread[26,tid=15279,Native,Thread*=0x6539c200,peer=0x138d20a0,"Thread-12925"]
08-09 14:47:46.956 14765 15279 F art : art/runtime/runtime.cc:368] Runtime aborting...
08-09 14:47:46.956 14765 15279 F art : art/runtime/runtime.cc:368]
08-09 14:47:46.956 14765 15279 E CRASH : signal 6 (SIGABRT), code -6 (?), fault addr --------
********** Crash dump: **********
Build fingerprint: 'samsung/kltejv/klte:6.0.1/MMB29M/G900FQJVS1CSB1:user/release-keys'
pid: 14765, tid: 15279, name: Thread-12925 >>> my.awesome.app <<<
Stack frame #00 pc 00041ff8 /system/lib/libc.so (tgkill+12)
Stack frame #01 pc 0003fc05 /system/lib/libc.so (pthread_kill+32)
Stack frame #02 pc 0001c38b /system/lib/libc.so (raise+10)
Stack frame #03 pc 00019609 /system/lib/libc.so (__libc_android_abort+34)
Stack frame #04 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #05 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #06 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #07 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #08 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #09 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #10 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #11 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #12 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #13 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #14 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #15 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #16 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #17 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #18 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #19 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #20 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #21 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #22 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #23 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #24 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #25 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #26 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #27 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #28 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #29 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #30 pc 0001755c /system/lib/libc.so (abort+4)
Stack frame #31 pc 0001755c /system/lib/libc.so (abort+4)
Seems like a threading problem, but no idea how to progress based on this log, it actually says not much besides the new “Native thread exited without calling DetachCurrentThread:” part.
I also have bunch load of;
08-09 14:49:18.656 14765 14765 E CRASH : other thread is trapped; signum = 6
08-09 14:49:18.656 14765 14765 E CRASH : main thread is trapped; signum = 6
08-09 14:49:18.656 14765 14765 E CRASH : other thread is trapped; signum = 6
08-09 14:49:18.656 14765 14765 E CRASH : main thread is trapped; signum = 6
08-09 14:49:18.656 14765 14765 E CRASH : other thread is trapped; signum = 6
08-09 14:49:18.666 14765 14765 E CRASH : main thread is trapped; signum = 6
08-09 14:49:18.666 14765 14765 E CRASH : other thread is trapped; signum = 6
08-09 14:49:18.666 14765 14765 E CRASH : main thread is trapped; signum = 6
08-09 14:49:18.666 14765 14765 E CRASH : other thread is trapped; signum = 6
08-09 14:49:18.666 14765 14765 E CRASH : main thread is trapped; signum = 6
08-09 14:49:18.666 14765 14765 E CRASH : other thread is trapped; signum = 6
How I can debug what’s going wrong during runtime from this, any ideas?