Android Native Lib Crash - android

I am getting a huge number of below crashes in the Playstore console with limited stacktrace only.
backtrace:
#00 pc 0000000000021f6c /system/lib64/libc.so (abort+116)
#01 pc 00000000000080d8 /system/lib64/liblog.so (__android_log_assert+304)
#02 pc 000000000000f0f8 /system/lib64/libutils.so (android::sp_report_race()+28)
#03 pc 0000000000115324 /system/lib64/libandroid_runtime.so (android::RootRenderNode::detachAnimators()+316)
#04 pc 0000000000113434 /system/lib64/libandroid_runtime.so (android::AnimationContextBridge::destroy()+24)
#05 pc 000000000049e99c /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::destroy()+128)
#06 pc 00000000004a2780 /system/lib64/libhwui.so (std::__1::packaged_task<void ()>::operator()()+88)
#07 pc 000000000045971c /system/lib64/libhwui.so (android::uirenderer::WorkQueue::process()+168)
#08 pc 000000000011fb30 /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+240)
#09 pc 000000000000f9d4 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+280)
#10 pc 00000000000836c8 /system/lib64/libc.so (__pthread_start(void*)+196)
#11 pc 0000000000023bac /system/lib64/libc.so (__start_thread+68)
Could someone already reproduce the issue or at least explain when the issue occurs and how to fix it?

Same issue
Device: Samsung Galaxy A8(2018)
Operating System: Android 9 (SDK 28)
Rooted: No
ABI: arm64-v8a
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.rdiscovery <<<
backtrace:
#00 pc 0000000000021ef4 /system/lib64/libc.so (abort+116)
#00 pc 00000000000080d8 /system/lib64/liblog.so (__android_log_assert+304)
#00 pc 0000000000108c40 /system/lib64/libandroid_runtime.so (android::android_view_RenderNode_hasIdentityMatrix(long)+116)
#00 pc 0000000000429e20 /system/framework/arm64/boot-framework.oat (offset 0x41f000) (android.graphics.Matrix.nIsAffine [DEDUPED]+64)
#00 pc 0000000000bfabc0 /system/framework/arm64/boot-framework.oat (offset 0x41f000) (android.view.RenderNode.hasIdentityMatrix+48)
#00 pc 0000000000cee608 /system/framework/arm64/boot-framework.oat (offset 0x41f000) (android.view.View.transformFromViewToWindowSpace+440)
#00 pc 0000000000cd68cc /system/framework/arm64/boot-framework.oat (offset 0x41f000) (android.view.View.getLocationInWindow+76)
#00 pc 0000000000cd6990 /system/framework/arm64/boot-framework.oat (offset 0x41f000) (android.view.View.getLocationOnScreen+48)
#00 pc 000000000003b5e4 /dev/ashmem/dalvik-jit-code-cache_6979_6979 (deleted)

Related

how to identify root cause of signal 6 (SIGABRT), code -1 (SI_QUEUE) in my production Android application

My current production Android application has reports of the following Crash within the Google Play console
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.my.application <<<
backtrace:
#00 pc 0000000000089fc4 /apex/com.android.runtime/lib64/bionic/libc.so (abort+168)
#00 pc 000000000055b744 /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+2260)
#00 pc 0000000000013990 /system/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_3::__invoke(char const*)+76)
#00 pc 0000000000012fb4 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+320)
#00 pc 0000000000276010 /apex/com.android.art/lib64/libart.so (void art::gc::accounting::SpaceBitmap<8ul>::VisitMarkedRange<art::gc::collector::ConcurrentCopying::ImmuneSpaceScanObjVisitor const&>(unsigned long, unsigned long, art::gc::collector::ConcurrentCopying::ImmuneSpaceScanObjVisitor const&) const+168)
#00 pc 0000000000255e24 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::CopyingPhase()+1584)
#00 pc 0000000000253968 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::RunPhases()+1048)
#00 pc 00000000002773ac /apex/com.android.art/lib64/libart.so (art::gc::collector::GarbageCollector::Run(art::gc::GcCause, bool)+312)
#00 pc 0000000000294044 /apex/com.android.art/lib64/libart.so (art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool)+4060)
#00 pc 00000000002916ec /apex/com.android.art/lib64/libart.so (art::gc::Heap::DoPendingCollectorTransition()+116)
#00 pc 00000000002abf18 /apex/com.android.art/lib64/libart.so (art::gc::Heap::CollectorTransitionTask::Run(art::Thread*)+36)
#00 pc 00000000002e4bc4 /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+64)
#00 pc 000000000001273c /apex/com.android.art/javalib/arm64/boot-core-libart.oat (art_jni_trampoline+124)
#00 pc 0000000000059384 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (java.lang.Daemons$HeapTaskDaemon.runInternal+196)
#00 pc 0000000000024e80 /apex/com.android.art/javalib/arm64/boot-core-libart.oat (java.lang.Daemons$Daemon.run+160)
#00 pc 000000000015d6f8 /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 00000000001a9a6c /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#00 pc 0000000000553330 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460)
#00 pc 00000000005a1ec8 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1288)
#00 pc 00000000000eb9ac /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 000000000008c2bc /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
the stack trace provided does not mention any of my application packages
how can i identify the root cause of this issue?
currently this crash has only occurred once and it is not mentioned in my analytics reports from New Relic

How Do We Debug SkPathGlue Crashes?

I am getting a bunch of crashes in SkPathGlue, both its approximate() and isRectContour() functions. Here's a sample native dump from one of the approximate() crashes, which is the more common of the two crashes:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> co.snicklefritz.android <<<
backtrace:
#00 pc 0000000000347148 /system/lib64/libhwui.so (android::SkPathGlue::approximate(_JNIEnv*, _jclass*, long, float)+580)
#00 pc 0000000000240fb0 /system/framework/arm64/boot-framework.oat (art_jni_trampoline+160)
#00 pc 000000000040ed9c /system/framework/arm64/boot-framework.oat (android.graphics.Path.approximate+60)
#00 pc 000000000043d1c0 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/oat/arm64/base.odex (fsimpl.aE.a+96)
#00 pc 0000000000a9178c /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/oat/arm64/base.odex (fsimpl.aG.a+524)
#00 pc 0000000000ac5c5c /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/oat/arm64/base.odex (fsimpl.O.a+444)
#00 pc 0000000000ac6f5c /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/oat/arm64/base.odex (fsimpl.O.a+2332)
#00 pc 0000000000ac63d8 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/oat/arm64/base.odex (fsimpl.O.a+232)
#00 pc 0000000000ab324c /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/oat/arm64/base.odex (fsimpl.dx.java_sync_scan_ui+284)
#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 0000000000532198 /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 0000000000533398 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+440)
#00 pc 0000000000393ef4 /apex/com.android.art/lib64/libart.so (art::JNI<false>::CallIntMethodA(_JNIEnv*, _jobject*, _jmethodID*, jvalue const*)+652)
#00 pc 00000000000425f8 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 000000000001611c /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 0000000000020b24 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 000000000001e8f4 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 00000000000841e0 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 0000000000083a74 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 00000000000368d8 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 000000000003985c /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#00 pc 00000000000aaad4 /data/app/~~ddTWSA2JWd81lFOpINkMdg==/co.snicklefritz.android-bvDqwzGOE-MRWgoGj5rMrA==/base.apk!libfs-native.so (offset 0x2490000)
#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)
These in turn seem to map to approximate() and isRect() functions on Path. However, my app code is not using either of those directly.
These are not crashing "in the lab". The approximate() one seems exclusive to Android 11 Samsung devices, and the isRect() one may be exclusive to Android 7.x.
How can we tell where in the app (our code or third-party libraries) these crashes are coming from?

Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), we are facing a crash when we are reusing the SurfaceView for playing video

we are facing this issue wherin trying to reuse the surfaceView for playing the video
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x10 in
tid 5971 (hwuiTask1), pid 4526 (com.example.tv)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint:
'Project/hsw4026atl/hsw4026atl:9/PTT1.210208.001/2.3.0-
21042717:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 4526, tid: 5971, name: hwuiTask1 >>> com.example.tv <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x10
Cause: null pointer dereference
r0 00000000 r1 7b6fa440 r2 7b17f32c r3 00000000
r4 8877d100 r5 7b17f360 r6 7b17f338 r7 00000000
r8 8877d104 r9 7b17f420 r10 13a56118 r11 13f1a020
ip a4935e24 sp 7b17f328 lr a491ac6b pc a491ac6e"-*
backtrace:
#00 pc 0005dc6e /system/lib/libgui.so -(android::SurfaceComposerClient::Transaction::getLayerState(android::sp<android::SurfaceControl> const&)+286)
#01 pc 0005dfeb /system/lib/libgui.so (android::SurfaceComposerClient::Transaction::deferTransactionUntil(android::sp<android::SurfaceControl> const&, android::sp<android::Surface> const&, unsigned long long)+22)
#02 pc 000a537f /system/lib/libandroid_runtime.so (android::nativeDeferTransactionUntilSurface(_JNIEnv*, _jclass*, long long, long long, long long, long long)+62)
#03 pc 003acc89 /system/framework/arm/boot-framework.oat (offset 0x38a000) (android.view.SurfaceControl.nativeDeferTransactionUntilSurface+152)
#04 pc 009b8a23 /system/framework/arm/boot-framework.oat (offset 0x38a000) (android.view.SurfaceControl$Transaction.deferTransactionUntilSurface+114)
#05 pc 00b143a7 /system/framework/arm/boot-framework.oat (offset 0x38a000) (android.view.SurfaceView.applySurfaceTransforms+110)
#06 pc 00b166d9 /system/framework/arm/boot-framework.oat (offset 0x38a000) (android.view.SurfaceView.updateSurfacePosition_renderWorker+240)
#07 pc 0041cb75 /system/lib/libart.so (art_quick_invoke_stub_internal+68)
#08 pc 003f5b09 /system/lib/libart.so (art_quick_invoke_stub+224)
#09 pc 000a100d /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
#10 pc 00354ea1 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
#11 pc 00355e51 /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+316)
#12 pc 00279c5b /system/lib/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+482)
#13 pc 000794cb /system/lib/libandroid_runtime.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+38)
#14 pc 000a11df /system/lib/libandroid_runtime.so (_ZZN7androidL46android_view_RenderNode_requestPositionUpdatesEP7_JNIEnvP8_jobjectxS3_EN26SurfaceViewPositionUpdater21doUpdatePositionAsyncExiiii+122)
#15 pc 000a135d /system/lib/libandroid_runtime.so (_ZNSt3__110__function6__funcINS_6__bindINS_8__mem_fnIMZN7androidL46android_view_RenderNode_requestPositionUpdatesEP7_JNIEnvP8_jobjectxS8_E26SurfaceViewPositionUpdaterFvxiiiiEEEJPS9_xiiiiEEENS_9allocatorISE_EEFvvEEclEv+52)
#16 pc 0037c61d /system/lib/libhwui.so (android::uirenderer::renderthread::CacheManager::SkiaTaskProcessor::onProcess(android::sp<android::uirenderer::Task<bool>> const&)+14)
#17 pc 0037ae17 /system/lib/libhwui.so (android::uirenderer::TaskProcessor<bool>::process(android::sp<android::uirenderer::TaskBase> const&)+38)
#18 pc 0034814b /system/lib/libhwui.so (android::uirenderer::TaskManager::WorkerThread::threadLoop()+110)
#19 pc 0000c189 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+292)
#20 pc 0006f1c3 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+82)
#21 pc 00064303 /system/lib/libc.so (__pthread_start(void*)+22)
#22 pc 0001df8d /system/lib/libc.so (__start_thread+32)
BootReceiver: Copying /data/tombstones/tombstone_00 to DropBox (SYSTEM_TOMBSTONE)
ActivityManager: Force finishing activity com.example.tv/.MainActivity

native crash on SM-J410G, android 8.1

I made some research and was not able to understand what could be the reason of this crash.
Does anyone have a clue? thanks!!
Here are some logs . It only crash on the devices, SM-J410G android 8.1
pid: 0, tid: 0 >>> com.app99.driver <<<
backtrace:
#00 pc 000000000001a70e /system/lib/libc.so (abort+63)
#00 pc 00000000000065a1 /system/lib/liblog.so (__android_log_assert+156)
#00 pc 000000000002fe31 /system/lib/libhwui.so (android::uirenderer::debug::GlesErrorCheckWrapper::assertNoErrors(char const*)+192)
#00 pc 000000000005c02d /system/lib/libhwui.so (android::uirenderer::Caches::flush(android::uirenderer::Caches::FlushMode)+116)
#00 pc 000000000004f835 /system/lib/libhwui.so (android::uirenderer::renderthread::Bridge_destroyHardwareResources(android::uirenderer::renderthread::destroyHardwareResourcesArgs*)+4)
#00 pc 0000000000050233 /system/lib/libhwui.so (android::uirenderer::renderthread::MethodInvokeRenderTask::run()+10)
#00 pc 00000000000503b3 /system/lib/libhwui.so (android::uirenderer::renderthread::SignalingRenderTask::run()+10)
#00 pc 0000000000051103 /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+178)
#00 pc 000000000000d23d /system/lib/libutils.so (android:🧵:_threadLoop(void*)+144)
#00 pc 0000000000068f89 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
#00 pc 00000000000479df /system/lib/libc.so (__pthread_start(void*)+22)
#00 pc 000000000001b2dd /system/lib/libc.so (__start_thread+32)

SurfaceView is triggering NDK crash signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

I have no idea about how the issue is reproduced since it is from the native library and it is for only live users. But I am suspecting it is from SurfaceView as it's back stack suggests.
Device Details:
Oppo realme 3Pro (RMX1851), Android 9
ERROR
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR) android::SurfaceComposerClient::Transaction::getLayerState(android::sp const&)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.test.surfaceview <<<
backtrace:
#00 pc 00000000000979c4 /system/lib64/libgui.so (android::SurfaceComposerClient::Transaction::getLayerState(android::sp<android::SurfaceControl> const&)+416)
#01 pc 0000000000098030 /system/lib64/libgui.so (android::SurfaceComposerClient::Transaction::deferTransactionUntil(android::sp<android::SurfaceControl> const&, android::sp<android::Surface> const&, unsigned long)+48)
#02 pc 000000000010b1e8 /system/lib64/libandroid_runtime.so (android::nativeDeferTransactionUntilSurface(_JNIEnv*, _jclass*, long, long, long, long)+100)
#03 pc 0000000000416300 /system/framework/arm64/boot-framework.oat (android.view.SurfaceControl.nativeDeferTransactionUntilSurface+176)
#04 pc 0000000000ba05c8 /system/framework/arm64/boot-framework.oat (android.view.SurfaceControl$Transaction.deferTransactionUntilSurface+136)
#05 pc 0000000000d42a54 /system/framework/arm64/boot-framework.oat (android.view.SurfaceView.applySurfaceTransforms+132)
#06 pc 0000000000d46ba0 /system/framework/arm64/boot-framework.oat (android.view.SurfaceView.updateSurfacePosition_renderWorker+752)
#07 pc 000000000055ab88 /system/lib64/libart.so (art_quick_invoke_stub+584)
#08 pc 00000000000d02c8 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#09 pc 000000000045f1f8 /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#10 pc 000000000046058c /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+440)
#11 pc 0000000000340fec /system/lib64/libart.so (art::JNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+656)
#12 pc 00000000000c78e4 /system/lib64/libandroid_runtime.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+116)
#13 pc 0000000000105abc /system/lib64/libandroid_runtime.so (_ZZN7androidL46android_view_RenderNode_requestPositionUpdatesEP7_JNIEnvP8_jobjectlS3_EN26SurfaceViewPositionUpdater21doUpdatePositionAsyncEliiii+204)
#14 pc 00000000002cef8c /system/lib64/libhwui.so
I tried to reproduce in a lot of scenarios but I had no luck.
Let me know if any other info is required.
It would be great if there is an explanation of how this issue can be fixed or fixed.

Categories

Resources