We've seen this crash intermittent for the past few weeks, but only on Samsung Android 10 devices. So far we have been unable to replicate this locally, nor are we seeing this log into Sentry. It only shows up in the Play Store logs for us.
For additional context:
- Hermes is enabled
- It appears to have started at the same time as we upgraded to react-navigation v5.
- Happens around 1% of the time for Samsung Android 10 devices
The crashes consistently have this crash signature:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.gemini.android.app <<<
backtrace:
#00 pc 0000000000083360 /apex/com.android.runtime/lib64/bionic/libc.so (abort+176)
#00 pc 00000000000b8124 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libc++_shared.so
#00 pc 00000000000b43d4 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libc++_shared.so (__gxx_personality_v0+364)
#00 pc 000000000003d3b4 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes-executor-release.so
#00 pc 000000000003d8bc /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes-executor-release.so (_Unwind_Resume+116)
#00 pc 0000000000029b9c /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes-executor-release.so (facebook::react::JSIExecutor::NativeModuleProxy::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)+472)
#00 pc 0000000000032ff0 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes.so (facebook::hermes::HermesRuntimeImpl::JsiProxy::get(hermes::vm::SymbolID)+196)
#00 pc 0000000000059854 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes.so
#00 pc 0000000000051c4c /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes.so
#00 pc 000000000004e93c /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes.so
#00 pc 0000000000076a64 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes.so
#00 pc 000000000002ca78 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes.so (facebook::hermes::HermesRuntimeImpl::evaluatePreparedJavaScript(std::__ndk1::shared_ptr<facebook::jsi::PreparedJavaScript const> const&)+228)
#00 pc 000000000002cbd8 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes.so (facebook::hermes::HermesRuntimeImpl::evaluateJavaScript(std::__ndk1::shared_ptr<facebook::jsi::Buffer const> const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const&)+88)
#00 pc 0000000000025fe4 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libhermes-executor-release.so (facebook::react::JSIExecutor::loadBundle(std::__ndk1::unique_ptr<facebook::react::JSBigString const, std::__ndk1::default_delete<facebook::react::JSBigString const>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>)+564)
#00 pc 00000000000a0958 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libreactnativejni.so
#00 pc 00000000000a2350 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libreactnativejni.so
#00 pc 0000000000068d48 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libreactnativejni.so
#00 pc 0000000000059a70 /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libreactnativejni.so (facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &(facebook::react::JNativeRunnable::run()), facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)+32)
#00 pc 00000000000599ec /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/lib/arm64/libreactnativejni.so (facebook::jni::detail::FunctionWrapper<void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>), &(facebook::jni::detail::MethodWrapper<void (facebook::react::JNativeRunnable::*)(), &(facebook::react::JNativeRunnable::run()), facebook::react::JNativeRunnable, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*>)), facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<facebook::react::JNativeRunnable, facebook::react::Runnable>::JavaPart, facebook::react::Runnable, void>::_javaobject*, void>::call(_JNIEnv*, _jobject*)+52)
#00 pc 000000000007814c /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/oat/arm64/base.odex (art_jni_trampoline+124)
#00 pc 00000000007f6b1c /system/framework/arm64/boot-framework.oat (android.os.Handler.dispatchMessage+76)
#00 pc 0000000000137334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 00000000001460ac /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244)
#00 pc 00000000002e2cb0 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384)
#00 pc 00000000002ddd3c /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+900)
#00 pc 00000000005a2a1c /apex/com.android.runtime/lib64/libart.so (MterpInvokeSuper+1532)
#00 pc 0000000000131894 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_super+20)
#00 pc 00000000003b236c /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/oat/arm64/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage)
#00 pc 00000000002b35e0 /apex/com.android.runtime/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.2296921443599613903)+240)
#00 pc 0000000000593210 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1024)
#00 pc 0000000000140468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88)
#00 pc 00000000007fa1f8 /system/framework/arm64/boot-framework.oat (android.os.Looper.loop+1448)
#00 pc 00000000001375b8 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_static_stub+568)
#00 pc 00000000001460cc /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+276)
#00 pc 00000000002e2cb0 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384)
#00 pc 00000000002ddd3c /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+900)
#00 pc 00000000005a4918 /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+368)
#00 pc 0000000000131994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20)
#00 pc 00000000003b24fa /data/app/com.gemini.android.app-mYfcCgG7U4jkbpiQr4EEtA==/oat/arm64/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run+74)
#00 pc 00000000002b35e0 /apex/com.android.runtime/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.2296921443599613903)+240)
#00 pc 0000000000593210 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1024)
#00 pc 0000000000140468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88)
#00 pc 00000000001b6818 /system/framework/arm64/boot.oat (java.lang.Thread.run+72)
#00 pc 0000000000137334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 00000000001460ac /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244)
#00 pc 00000000004b1d90 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#00 pc 00000000004b2e40 /apex/com.android.runtime/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+416)
#00 pc 00000000004f39f0 /apex/com.android.runtime/lib64/libart.so (art::Thread::CreateCallback(void*)+1176)
#00 pc 00000000000e3b24 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
#00 pc 0000000000085330 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)