Native crash
It happens approximately with 5% of our users. We are not able to reproduce it. All we have is stack traces from Crashlytics and Play Console. We use Android SDK Premium v3.18. Crash follows us starting version v3.14. Here are all details that we have:
- Stacktrace
`*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** pid: 0, tid: 0 >>> com.truckersreport.hammer <<<
backtrace: #00 pc 000000000004ef24 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) #00 pc 0000000000042b00 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::die()+8) #00 pc 000000000004318c /apex/com.android.runtime/lib64/bionic/libc.so (scudo::ScopedErrorReport::~ScopedErrorReport()+32) #00 pc 0000000000043294 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportHeaderRace(void*)+60) #00 pc 0000000000048428 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::Allocator<scudo::AndroidConfig, &(scudo_malloc_postinit)>::quarantineOrDeallocateChunk(void*, scudo::Chunk::UnpackedHeader*, unsigned long)+692) #00 pc 0000000000044dbc /apex/com.android.runtime/lib64/bionic/libc.so (scudo::Allocator<scudo::AndroidConfig, &(scudo_malloc_postinit)>::reallocate(void*, unsigned long, unsigned long)+316) #00 pc 0000000000044c1c /apex/com.android.runtime/lib64/bionic/libc.so (scudo_realloc+36) #00 pc 000000000003bf14 /apex/com.android.runtime/lib64/bionic/libc.so (realloc+84) #00 pc 00000000011eafc0 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 00000000011eaf44 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 0000000000ff3834 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 0000000000ff4198 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 0000000000d3aecc /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 00000000000158f4 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libos-adaptation.network.so (offset 0x2d89000) #00 pc 000000000001557c /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libos-adaptation.network.so (offset 0x2d89000) #00 pc 0000000000016280 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libos-adaptation.network.so (offset 0x2d89000) (Java_com_here_network_NetworkProtocol_dataCallback+92) #00 pc 00000000002bd350 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/oat/arm64/base.odex (art_jni_trampoline+176) #00 pc 00000000006279a4 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/oat/arm64/base.odex (com.here.network.NetworkProtocol.access$700+52) #00 pc 00000000006261bc /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/oat/arm64/base.odex (com.here.network.NetworkProtocol$GetTask.doInBackground+5372) #00 pc 0000000000624c64 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/oat/arm64/base.odex (com.here.network.NetworkProtocol$GetTask.doInBackground+84) #00 pc 000000000074d228 /system/framework/arm64/boot-framework.oat (android.os.AsyncTask$3.call+168) #00 pc 0000000000243688 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.FutureTask.run+200) #00 pc 00000000002a2d38 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+984) #00 pc 000000000029ff30 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+64) #00 pc 000000000015ced8 /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+72) #00 pc 0000000000134564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) #00 pc 0000000000198e94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204) #00 pc 000000000053216c /apex/com.android.art/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) #00 pc 000000000053336c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValuesart::ArtMethod*(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+440) #00 pc 000000000058088c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1272) #00 pc 00000000000b6234 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) #00 pc 0000000000050e64 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)`
The part that could be interesting here:
#00 pc 00000000006279a4 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/oat/arm64/base.odex (com.here.network.NetworkProtocol.access$700+52) #00 pc 00000000006261bc /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/oat/arm64/base.odex (com.here.network.NetworkProtocol$GetTask.doInBackground+5372) #00 pc 0000000000624c64 /data/app/~~gN0JexiCxCeIf55dfMwkAg==/com.truckersreport.hammer-GNz6y3q_zBONjqheR624Mg==/oat/arm64/base.odex (com.here.network.NetworkProtocol$GetTask.doInBackground+84)
- Sample device: Samsung Galaxy Note10+ 5G Android 11 (SDK 30)
A bit different stack:
`*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** pid: 0, tid: 0 >>> com.truckersreport.hammer <<<
backtrace: #00 pc 000000000004ef24 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) #00 pc 00000000000790f4 /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124) #00 pc 00000000000b1910 /apex/com.android.runtime/lib64/bionic/libc.so (fwrite+296) #00 pc 00000000011eb92c /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 0000000000ff3834 /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 0000000000ff4198 /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 0000000000d3aecc /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libMAPSJNI.so (offset 0x8c7000) #00 pc 00000000000158f4 /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libos-adaptation.network.so (offset 0x2d89000) #00 pc 000000000001557c /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libos-adaptation.network.so (offset 0x2d89000) #00 pc 0000000000016280 /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/split_config.arm64_v8a.apk!lib/arm64-v8a/libos-adaptation.network.so (offset 0x2d89000) (Java_com_here_network_NetworkProtocol_dataCallback+92) #00 pc 00000000002fb350 /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/oat/arm64/base.odex (art_jni_trampoline+176) #00 pc 00000000005658a4 /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/oat/arm64/base.odex (com.here.network.NetworkProtocol.access$700+52) #00 pc 00000000005640fc /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/oat/arm64/base.odex (com.here.network.NetworkProtocol$GetTask.doInBackground+5372) #00 pc 0000000000562ba4 /data/app/~~4h3BfPSRaT-8reXXUFIBrg==/com.truckersreport.hammer-HJc72P5yq5SyoNNyY_mMBg==/oat/arm64/base.odex (com.here.network.NetworkProtocol$GetTask.doInBackground+84) #00 pc 000000000074d228 /system/framework/arm64/boot-framework.oat (android.os.AsyncTask$3.call+168) #00 pc 0000000000243688 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.FutureTask.run+200) #00 pc 00000000002a2d38 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+984) #00 pc 000000000029ff30 /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+64) #00 pc 000000000015ced8 /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+72) #00 pc 0000000000134564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) #00 pc 0000000000198e94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204) #00 pc 000000000053216c /apex/com.android.art/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104) #00 pc 000000000053336c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValuesart::ArtMethod*(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+440) #00 pc 000000000058088c /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1272) #00 pc 00000000000b6234 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) #00 pc 0000000000050e64 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)`