Closed ebaynaud closed 3 years ago
@ebaynaud Do you have any reproduced steps? Otherwise, symbolicated backtrace would be helped.
wget https://registry.npmjs.org/jsc-android/-/jsc-android-245459.0.0.tgz
tar xf jsc-android-245459.0.0.tgz
unzip package/dist/org/webkit/android-jsc/r245459/android-jsc-r245459.aar
adb logcat -c
adb logcat | ndk-stack -sym jni/arm64-v8a/libjsc.so
Sorry but no, I cannot reproduce by myself because I don't have this device within easy reach. The crash is coming from Google Play console.
Hi Kudo,
I confirm crash is gone from Samsung devices but after upgrading to 0.59.10 we are still seeing it on a couple of other devices as well (unfortunately also through Google Play - I don't have access to such a device to reproduce).
So far I've seen it on: Asus X555 Huawei P9 Lite Huawei y6 2017 Huawei Y7 Prime 2018
Running Android 6.0, 7.0 and 8.0.
I've also seen a couple of devices running Android 9 or Android 8.1: Huawei p smart 2019 Huawei p30
As you can see, Huawei devices are standing out. I have a Huawei P smart (FIG-LX1) running android 8.0 test device myself but it seems to be running just fine on that one.
pid: 0, tid: 0 >>> live.ablo <<<
backtrace:
#00 pc 00000000000f7748 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#1 pc 0000000000143fe8 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#2 pc 000000000012f0a8 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#3 pc 0000000000139484 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#4 pc 000000000013900c /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#5 pc 00000000001fb9c4 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#6 pc 00000000001f8e90 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#7 pc 00000000001f96bc /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#8 pc 00000000001e41a0 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#9 pc 00000000006171ec /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#10 pc 0000000000617950 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#11 pc 000000000060de7c /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#12 pc 000000000061b084 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#13 pc 0000000000646dc8 /data/app/com.myapp-7flUaqbvABD7Q-kusVtsLw==/lib/arm64/libjsc.so
#14 pc 0000000000082e10 /system/lib64/libc.so (__pthread_start(void*)+36)
#15 pc 0000000000024080 /system/lib64/libc.so (__start_thread+68)
I'm experiencing it as well on a Huawei Y5 (2017).
Same here. Asus ZenFone 3 Max, Android 8.1. The stack trace (via Google Play Console) is almost exactly the same as the other ones in this issue (except for the pc for /system/lib64/libc.so, which would vary according to the device manufacturer or Android version, I guess).
pid: 0, tid: 0 >>> pt.geota.app <<<
backtrace:
#00 pc 00000000000f7748 /data/data/pt.geota.app/lib-0/libjsc.so
#01 pc 0000000000143fe8 /data/data/pt.geota.app/lib-0/libjsc.so
#02 pc 000000000012f0a8 /data/data/pt.geota.app/lib-0/libjsc.so
#03 pc 0000000000139484 /data/data/pt.geota.app/lib-0/libjsc.so
#04 pc 000000000013900c /data/data/pt.geota.app/lib-0/libjsc.so
#05 pc 00000000001fb9c4 /data/data/pt.geota.app/lib-0/libjsc.so
#06 pc 00000000001f8e90 /data/data/pt.geota.app/lib-0/libjsc.so
#07 pc 00000000001f96bc /data/data/pt.geota.app/lib-0/libjsc.so
#08 pc 00000000001e41a0 /data/data/pt.geota.app/lib-0/libjsc.so
#09 pc 00000000006171ec /data/data/pt.geota.app/lib-0/libjsc.so
#10 pc 0000000000617950 /data/data/pt.geota.app/lib-0/libjsc.so
#11 pc 000000000060de7c /data/data/pt.geota.app/lib-0/libjsc.so
#12 pc 000000000061b084 /data/data/pt.geota.app/lib-0/libjsc.so
#13 pc 0000000000646dc8 /data/data/pt.geota.app/lib-0/libjsc.so
#14 pc 000000000007472c /system/lib64/libc.so (__pthread_start(void*)+36)
#15 pc 000000000001fbb4 /system/lib64/libc.so (__start_thread+68)
Seeing potentially similar issue for a variety of 64-bit phones running Android 9. RN: 0.59.10 JSC: 241213.1.0 (with ICU i18n support)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.invisatime <<<
backtrace:
#00 pc 00000000004ae0c0 /data/data/com.invisatime/lib-0/libjsc.so
#01 pc 00000000004ab608 /data/data/com.invisatime/lib-0/libjsc.so
#02 pc 00000000004abd90 /data/data/com.invisatime/lib-0/libjsc.so
#03 pc 0000000000498004 /data/data/com.invisatime/lib-0/libjsc.so
#04 pc 000000000088ea1c /data/data/com.invisatime/lib-0/libjsc.so
#05 pc 000000000088f14c /data/data/com.invisatime/lib-0/libjsc.so
#06 pc 000000000088527c /data/data/com.invisatime/lib-0/libjsc.so
#07 pc 00000000008929f0 /data/data/com.invisatime/lib-0/libjsc.so
#08 pc 00000000008a5098 /data/data/com.invisatime/lib-0/libjsc.so
#09 pc 0000000000081938 /system/lib64/libc.so (__pthread_start(void*)+36)
#10 pc 0000000000023478 /system/lib64/libc.so (__start_thread+68)
I'm seeing this on at least 5 different devices. Anyone came up with a solution?
@N1ghtly If you have the ability to do so, it might be worth trying to upgrade to 0.60.4 and turn Hermes on. See @Kudo's comment here:
https://github.com/facebook/react-native/issues/24261#issuecomment-514288959
We're also seeing crashes on our build, w/ JSC r245459... @Kudo i attempted to symbolicate using your instructions from https://github.com/facebook/react-native/issues/25494#issuecomment-508460899, and here's what I came up with:
********** Crash dump: **********
pid: 0, tid: 0 >>> APPNAME <<<
Stack frame #00 pc 00000000000f7748 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::AccessCase::propagateTransitions(JSC::SlotVisitor&) const at sfp-exceptions.c:?
Stack frame #01 pc 0000000000143fe8 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::PolymorphicAccess::propagateTransitions(JSC::SlotVisitor&) const at sfp-exceptions.c:?
Stack frame #02 pc 000000000012f0a8 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::CodeBlock::propagateTransitions(JSC::ConcurrentJSLocker const&, JSC::SlotVisitor&) at sfp-exceptions.c:?
Stack frame #03 pc 0000000000139484 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::ExecutableToCodeBlockEdge::runConstraint(JSC::ConcurrentJSLocker const&, JSC::VM&, JSC::SlotVisitor&) at sfp-exceptions.c:?
Stack frame #04 pc 000000000013900c /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::ExecutableToCodeBlockEdge::visitChildren(JSC::JSCell*, JSC::SlotVisitor&) at sfp-exceptions.c:?
Stack frame #05 pc 00000000001fb9c4 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::SlotVisitor::drain(WTF::MonotonicTime)::$_3::operator()(JSC::MarkStackArray&) const at sfp-exceptions.c:?
Stack frame #06 pc 00000000001f8e90 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::SlotVisitor::drain(WTF::MonotonicTime) at sfp-exceptions.c:?
Stack frame #07 pc 00000000001f96bc /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode, WTF::MonotonicTime) at sfp-exceptions.c:?
Stack frame #08 pc 00000000001e41a0 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine WTF::SharedTaskFunctor<void (), JSC::Heap::runBeginPhase(JSC::GCConductor)::$_17>::run() at sfp-exceptions.c:?
Stack frame #09 pc 00000000006171ec /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()>, WTF::DumbPtrTraits<WTF::SharedTask<void ()> > > const&) at sfp-exceptions.c:?
Stack frame #10 pc 0000000000617950 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine WTF::ParallelHelperPool::Thread::work() at sfp-exceptions.c:?
Stack frame #11 pc 000000000060de7c /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine WTF::Function<void ()>::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::$_0>::call() at sfp-exceptions.c:?
Stack frame #12 pc 000000000061b084 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) at sfp-exceptions.c:?
Stack frame #13 pc 0000000000646dc8 /data/app/APPNAME-7N8FNwyuRgPc5XMrSr_hjQ==/lib/arm64/libjsc.so: Routine WTF::wtfThreadEntryPoint(void*) at sfp-exceptions.c:?
Stack frame #14 pc 0000000000069974 /system/lib64/libc.so (__pthread_start(void*)+36)
Stack frame #15 pc 000000000001f864 /system/lib64/libc.so (__start_thread+68)
We can confirm that the same issue occurs on beyondx (Samsung Galaxy S10 5G) on Android 9, which has an Exynos 9820 (ARMv8.2):
backtrace:
#00 pc 00000000000f7748 /data/app/{APP_NAME}/lib/arm64/libjsc.so (JSC::AccessCase::propagateTransitions(JSC::SlotVisitor&) const+16)
#01 pc 0000000000143fe8 /data/app/{APP_NAME}/lib/arm64/libjsc.so (JSC::PolymorphicAccess::propagateTransitions(JSC::SlotVisitor&) const+48)
#02 pc 000000000012f0a8 /data/app/{APP_NAME}/lib/arm64/libjsc.so (JSC::CodeBlock::propagateTransitions(JSC::ConcurrentJSLocker const&, JSC::SlotVisitor&)+556)
#03 pc 0000000000139484 /data/app/{APP_NAME}/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::runConstraint(JSC::ConcurrentJSLocker const&, JSC::VM&, JSC::SlotVisitor&)+40)
#04 pc 000000000013900c /data/app/{APP_NAME}/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::visitChildren(JSC::JSCell*, JSC::SlotVisitor&)+1044)
#05 pc 00000000001fb9c4 /data/app/{APP_NAME}/lib/arm64/libjsc.so (_ZZN3JSC11SlotVisitor5drainEN3WTF13MonotonicTimeEENK3$_3clERNS_14MarkStackArrayE+324)
#06 pc 00000000001f8e90 /data/app/{APP_NAME}/lib/arm64/libjsc.so (JSC::SlotVisitor::drain(WTF::MonotonicTime)+132)
#07 pc 00000000001f96bc /data/app/{APP_NAME}/lib/arm64/libjsc.so (JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode, WTF::MonotonicTime)+580)
#08 pc 00000000001e41a0 /data/app/{APP_NAME}/lib/arm64/libjsc.so (_ZN3WTF17SharedTaskFunctorIFvvEZN3JSC4Heap13runBeginPhaseENS2_11GCConductorEE4$_17E3runEv+580)
#09 pc 00000000006171ec /data/app/{APP_NAME}/lib/arm64/libjsc.so (WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()>, WTF::DumbPtrTraits<WTF::DumbPtrTraits>> const&)+40)
#10 pc 0000000000617950 /data/app/{APP_NAME}/lib/arm64/libjsc.so (WTF::ParallelHelperPool::Thread::work()+16)
#11 pc 000000000060de7c /data/app/{APP_NAME}/lib/arm64/libjsc.so (_ZN3WTF8FunctionIFvvEE15CallableWrapperIZNS_15AutomaticThread5startERKNS_14AbstractLockerEE3$_0E4callEv+376)
#12 pc 000000000061b084 /data/app/{APP_NAME}/lib/arm64/libjsc.so (WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)+212)
#13 pc 0000000000646dc8 /data/app/{APP_NAME}/lib/arm64/libjsc.so (WTF::wtfThreadEntryPoint(void*)+4)
#14 pc 0000000000084148 /system/lib64/libc.so (__pthread_start(void*)+64)
#15 pc 0000000000023b28 /system/lib64/libc.so (__start_thread+68)
Thank you all and especially @dhess-zynga providing symbolicated backtrace. It looks like the crash point are mostly the same. However, I am afraid that I am not able to help with this case if there's no reproduced steps. The crash seems happened at JSC bytecode being GCed during access. Without the JS source code & reproduce steps, it is hard to troubleshoot such problem for me. Maybe it is the time to try upgrading RN 0.60.4 and use Hermes engine. Or if you need a JSC disabled JIT (based on WebKitGTK 2.24), please feel free to let me know.
@Kudo Please publish a JIT disabled JSC for us to try out. Unfortunately Hermes isn't an option for some of us yet until intl support is added: https://github.com/facebook/hermes/issues/23
I can confirm crashes on a Huawei Mate 20 Pro running RN 0.59.10:
2019-07-30 10:36:37.063 14725-14944/{APP_NAME} A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20 in tid 14944 (RenderThread), pid 14725 ({APP_NAME})
2019-07-30 10:36:37.146 15316-15316/? I/crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
2019-07-30 10:36:37.147 806-806/? I//system/bin/tombstoned: received crash request for pid 14944
2019-07-30 10:36:37.150 15316-15316/? I/crash_dump64: performing dump of process 14725 (target tid = 14944)
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: Build fingerprint: 'HUAWEI/LYA-L29/HWLYA:9/HUAWEILYA-L29/146C432R1:user/release-keys'
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: Revision: '0'
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: ABI: 'arm64'
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: pid: 14725, tid: 14944, name: RenderThread >>> {APP_NAME} <<<
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: Cause: null pointer dereference
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x0 0000000000000000 x1 0000007cfed3730c x2 0000000000000002 x3 0000007c585946f8
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x4 0000000000000070 x5 0000007c58593104 x6 0000007c58593100 x7 0000007c585930fc
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x8 0000000000000000 x9 0000000000000000 x10 0000000000000000 x11 0000000000000000
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x12 ffffffffffe949dc x13 0000007c5859c588 x14 0000000000000000 x15 0000000000000000
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x16 0000007cff066118 x17 0000007cfee07d08 x18 0000000000000000 x19 0000000000000000
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x20 0000000000000000 x21 0000007c1717e000 x22 0000000000000000 x23 0000000000000000
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x24 0000000000000000 x25 0000007c5859c588 x26 0000000000000000 x27 0000000000000000
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: x28 0000000000000000 x29 0000007c585946c0
2019-07-30 10:36:37.159 15316-15316/? A/DEBUG: sp 0000007c585946b0 lr 0000007cfe9be4b8 pc 0000007cfee07d18
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: backtrace:
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #00 pc 000000000053ed18 /system/lib64/libhwui.so (SkSurface::getCanvas()+16)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #01 pc 00000000000f54b4 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::GLFunctorDrawable::onDraw(SkCanvas*)+1204)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #02 pc 000000000045a8b4 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+352)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #03 pc 000000000045afc8 /system/lib64/libhwui.so (SkLiteDL::draw(SkCanvas*) const+204)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #04 pc 000000000043e8e0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+292)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #05 pc 000000000043eca0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+252)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #06 pc 000000000045a7e8 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+148)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #07 pc 000000000045afc8 /system/lib64/libhwui.so (SkLiteDL::draw(SkCanvas*) const+204)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #08 pc 000000000043e8e0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+292)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #09 pc 000000000043eca0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+252)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #10 pc 000000000045a7e8 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+148)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #11 pc 000000000045afc8 /system/lib64/libhwui.so (SkLiteDL::draw(SkCanvas*) const+204)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #12 pc 000000000043e8e0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+292)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #13 pc 000000000043eca0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+252)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #14 pc 000000000045a7e8 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+148)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #15 pc 000000000045afc8 /system/lib64/libhwui.so (SkLiteDL::draw(SkCanvas*) const+204)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #16 pc 000000000043e8e0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+292)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #17 pc 000000000043eca0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+252)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #18 pc 000000000045a7e8 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+148)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #19 pc 000000000045afc8 /system/lib64/libhwui.so (SkLiteDL::draw(SkCanvas*) const+204)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #20 pc 000000000043e8e0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+292)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #21 pc 000000000043eca0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+252)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #22 pc 000000000045a7e8 /system/lib64/libhwui.so (SkDrawable::draw(SkCanvas*, SkMatrix const*)+148)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #23 pc 000000000045afc8 /system/lib64/libhwui.so (SkLiteDL::draw(SkCanvas*) const+204)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #24 pc 000000000043e8e0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::drawContent(SkCanvas*) const+292)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #25 pc 000000000043eca0 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+252)
2019-07-30 10:36:37.192 15316-15316/? A/DEBUG: #26 pc 00000000000fdc3c /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderLayersImpl(android::uirenderer::LayerUpdateQueue const&, bool, bool)+784)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #27 pc 000000000047f848 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderFrame(android::uirenderer::LayerUpdateQueue const&, SkRect const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::RenderNode>>> const&, bool, bool, android::uirenderer::Rect const&, sk_sp<SkSurface>)+96)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #28 pc 000000000047e270 /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::draw(android::uirenderer::renderthread::Frame const&, SkRect const&, SkRect const&, android::uirenderer::FrameBuilder::LightGeometry const&, android::uirenderer::LayerUpdateQueue*, android::uirenderer::Rect const&, bool, bool, android::uirenderer::BakedOpRenderer::LightInfo const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::Re
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #29 pc 0000000000108ffc /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+240)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #30 pc 00000000004838d0 /system/lib64/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+644)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #31 pc 000000000043d828 /system/lib64/libhwui.so (android::uirenderer::WorkQueue::process()+168)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #32 pc 00000000001167a8 /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+240)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #33 pc 000000000000fa44 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+280)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #34 pc 0000000000082dfc /system/lib64/libc.so (__pthread_start(void*)+36)
2019-07-30 10:36:37.193 15316-15316/? A/DEBUG: #35 pc 0000000000024080 /system/lib64/libc.so (__start_thread+68)
Hello !
I just updated my application on the PlayStore today, I use now the RN version 0.59.10, and I have this problem on a device. I saw this on the Google Play Console.
The device is Galaxy S8+ (dream2lte) on Android 9.
backtrace:
#00 pc 00000000000f7748 /data/data/{package_name}/lib-0/libjsc.so (JSC::AccessCase::propagateTransitions(JSC::SlotVisitor&) const+16)
#01 pc 0000000000143fe8 /data/data/{package_name}/lib-0/libjsc.so (JSC::PolymorphicAccess::propagateTransitions(JSC::SlotVisitor&) const+48)
#02 pc 000000000012f0a8 /data/data/{package_name}/lib-0/libjsc.so (JSC::CodeBlock::propagateTransitions(JSC::ConcurrentJSLocker const&, JSC::SlotVisitor&)+556)
#03 pc 0000000000139484 /data/data/{package_name}/lib-0/libjsc.so (JSC::ExecutableToCodeBlockEdge::runConstraint(JSC::ConcurrentJSLocker const&, JSC::VM&, JSC::SlotVisitor&)+40)
#04 pc 000000000013900c /data/data/{package_name}/lib-0/libjsc.so (JSC::ExecutableToCodeBlockEdge::visitChildren(JSC::JSCell*, JSC::SlotVisitor&)+1044)
#05 pc 00000000001fb9c4 /data/data/{package_name}/lib-0/libjsc.so (_ZZN3JSC11SlotVisitor5drainEN3WTF13MonotonicTimeEENK3$_3clERNS_14MarkStackArrayE+324)
#06 pc 00000000001f8e90 /data/data/{package_name}/lib-0/libjsc.so (JSC::SlotVisitor::drain(WTF::MonotonicTime)+132)
#07 pc 00000000001f96bc /data/data/{package_name}/lib-0/libjsc.so (JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode, WTF::MonotonicTime)+580)
#08 pc 00000000001e41a0 /data/data/{package_name}/lib-0/libjsc.so (_ZN3WTF17SharedTaskFunctorIFvvEZN3JSC4Heap13runBeginPhaseENS2_11GCConductorEE4$_17E3runEv+580)
#09 pc 00000000006171ec /data/data/{package_name}/lib-0/libjsc.so (WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()>, WTF::DumbPtrTraits<WTF::DumbPtrTraits>> const&)+40)
#10 pc 0000000000617950 /data/data/{package_name}/lib-0/libjsc.so (WTF::ParallelHelperPool::Thread::work()+16)
#11 pc 000000000060de7c /data/data/{package_name}/lib-0/libjsc.so (_ZN3WTF8FunctionIFvvEE15CallableWrapperIZNS_15AutomaticThread5startERKNS_14AbstractLockerEE3$_0E4callEv+376)
#12 pc 000000000061b084 /data/data/{package_name}/lib-0/libjsc.so (WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)+212)
#13 pc 0000000000646dc8 /data/data/{package_name}/lib-0/libjsc.so (WTF::wtfThreadEntryPoint(void*)+4)
#14 pc 0000000000084dc0 /system/lib64/libc.so (__pthread_start(void*)+208)
#15 pc 0000000000023a4c /system/lib64/libc.so (__start_thread+68)
I've also saw similar crashes on multiple devices in Google Play Store crash report. Unfortunately I cannot easily upgrade to 0.60+ and try out Hermes. Anyone tried upgrading and trying out Hermes yet?
RN: 0.59.10 Android 9 Devices:
backtrace:
#00 pc 00000000000f7748 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (JSC::AccessCase::propagateTransitions(JSC::SlotVisitor&) const+16)
#01 pc 0000000000143fe8 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (JSC::PolymorphicAccess::propagateTransitions(JSC::SlotVisitor&) const+48)
#02 pc 000000000012f0a8 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (JSC::CodeBlock::propagateTransitions(JSC::ConcurrentJSLocker const&, JSC::SlotVisitor&)+556)
#03 pc 0000000000139484 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::runConstraint(JSC::ConcurrentJSLocker const&, JSC::VM&, JSC::SlotVisitor&)+40)
#04 pc 000000000013900c /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (JSC::ExecutableToCodeBlockEdge::visitChildren(JSC::JSCell*, JSC::SlotVisitor&)+1044)
#05 pc 00000000001fb9c4 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (_ZZN3JSC11SlotVisitor5drainEN3WTF13MonotonicTimeEENK3$_3clERNS_14MarkStackArrayE+324)
#06 pc 00000000001f8e90 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (JSC::SlotVisitor::drain(WTF::MonotonicTime)+132)
#07 pc 00000000001f96bc /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode, WTF::MonotonicTime)+580)
#08 pc 00000000001e41a0 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (_ZN3WTF17SharedTaskFunctorIFvvEZN3JSC4Heap13runBeginPhaseENS2_11GCConductorEE4$_17E3runEv+580)
#09 pc 00000000006171ec /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask<void ()>, WTF::DumbPtrTraits<WTF::DumbPtrTraits>> const&)+40)
#10 pc 0000000000617950 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (WTF::ParallelHelperPool::Thread::work()+16)
#11 pc 000000000060de7c /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (_ZN3WTF8FunctionIFvvEE15CallableWrapperIZNS_15AutomaticThread5startERKNS_14AbstractLockerEE3$_0E4callEv+376)
#12 pc 000000000061b084 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*)+212)
#13 pc 0000000000646dc8 /data/app/{package_name}-1_OKn7xVjBSXDhWrN582vQ==/lib/arm64/libjsc.so (WTF::wtfThreadEntryPoint(void*)+4)
#14 pc 0000000000083530 /system/lib64/libc.so (__pthread_start(void*)+36)
#15 pc 00000000000241dc /system/lib64/libc.so (__start_thread+68)
We see it intermittently as well... Unfortunately, Hermes doesn't yet support some things that are relatively common in our codebase (and I think that of a lot of folks), specifically (Actually I just realized it's probably babel'ed in—we'll probably try it on our side and report back):
https://github.com/facebook/hermes/blob/master/doc/Features.md
Despite heroic efforts to track it down/fix it from @Kudo and folks, it might be worth going backward vs. forward to before 0.59, when the JSC was upgraded. We like trying to stay updated on features, but crashes/freezing/etc. on production apps that we can't stop are making us consider waiting until 0.60+/Hermes is more mature to actually have hooks, etc. that came with 0.59+.
Hey guys, I've found what caused the problem in our app. we are using react-navigation in combination with useScreens. There seems to be a problem in the useScreens code:
https://github.com/kmagiera/react-native-screens/issues/105
deactivating and removing useScreens seems to fix the crashes
Can confirm that I too use react-navigation but not using useScreens.
Hey,
Same as @mars-lan , using react-navigation 3.0.0 but not useScreens.
We also use react-navigation (3.7.1) as well—but similar to the other folks here, don't use useScreens. One of our early theories was something with navigation (since it seemed to happen more often when we interacted with navigation elements). We had cleared it later after seeing other reports that seemed to say they didn't have it, but will test on our side and see if it resolves it.
We have released React Native 0.60.4 on Wednesday using Hermes on Android and I can confirm there are no more 64-bit crashes (at least not yet at this point). In fact, Hermes improved our average app boot time from 5.8s to 2.5s or even less on higher end devices.
One thing to note: If you support Android 4 you should use the latest version of "hermes-engine" (0.1.1) as the current "hermesvm" (0.1.0) integration in React Native 0.60.4 makes the app crash on boot time. See https://github.com/facebook/hermes/issues/42 for more info on that.
Hi all. ~~I updated app to RN 0.60.4 but crashes still have. I tested on real devices, but i can't give backtrace :( Devices with crash:~~ htc u11 plus 8.0 Huawei nexus 6p 8.1 Motorola moto g6 8.0 LGE Nexus 5X Android 8.0.0 samsung galaxy S8 8 0 samsung galaxy S8 PLUS 8 0 samsung galaxy S9 8 0 samsung galaxy S9 Plus 8 0 sony Xperia xa 1 80 Sony Xperia XZ2 Android 8.0.0 I must say right away that it’s impossible to turn on Hermes because Realm Db cannot work with it yet
Well, it is my fail. This is a crash not because of JSC but because of a problem with portrait mode in SDK 26 (android 8)
Same crash hapening for me as well
F/libc (14838): Fatal signal 11 (SIGSEGV) in tid 14959 (mqt_js) F/libc (14838): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xa6cca6cc510534
Hey guys, this appears to be absolute blocker for all Android apps using React Native to be updated since Google Play not allow to push apps without 64 bit support from Aug 1.
And we can't go back to previous RN versions since they don't support 64 bit at all. Am I missing something? Please correct.
It's not clear if anybody from React Native team aware of that. Is there any way to escalate this issue?
We're indeed being blocked by this issue. @j-wang any luck with the debugging?
Hey guys, this appears to be absolute blocker for all Android apps using React Native to be updated since Google Play not allow to push apps without 64 bit support from Aug 1.
We're blocked as well since expo unimodules don't support 0.60.x
. We're currently only able to push updates to iOS users, but not Android :/
@mars-lan Unfortunately, playing around with an app with react-navigation entirely stripped out still seems to cause the issue... It's kind of tricky to pin down since the amount of time that has to go by before JSC crashes is pretty variable. Maybe it takes a bit longer without react-navigation...? But it still crashes.
I can confirm that this most recent JSC does not resolve all crashes. We still see a large number of them on a variety of devices in google play. We've upgraded anyway since it's required for google play, but it's upped our crash rate almost 2%. Huge issue and needs attention ASAP.
We do not use React-Navigation, nor do we support android 4.
@j-wang did you try turning hermes on? did it help? We're considering trying that but are very skeptical at this point that it will do anything.
@NathanielWaggoner I had put it off/left it for now since we hit some blockers with international support (https://github.com/facebook/hermes/issues/23). We don't technically support non-English stuff yet, but certain libraries with datetime, currency, etc all need it and unexpectedly are affected.
The Hermes team currently, as per the issue, has no plans on adding it. As such... we could test more, but even if we rip out all of our utility functions and replace them, we'll also be expanding to other languages/locales soon, which makes it kind of moot as a solution if it does work.
... Which does actually does mean we're seriously considering un-hookifying some of our code and just rolling back to before 0.59.
@j-wang as far as I understand if rolling back to the version before 0.59 you'll not be able to support 64 bit.
To add about Hermes, for example in our project we don't have app/build.gradle
to configure enableHermes
- we configure options in the code, using builder class if I remember correctly, but at the moment framework doesn't provide such option for enabling Hermes. And I don't think it's time to use newborn technology.
https://github.com/Kudo/react-native-v8 seems to be an interesting alternative. I haven't tried it out though.
@loginov-rocks Ah, true that is... Well, I guess that saves us some re-work work. We had originally upgraded for hooks and hadn't even realized that the 64-bit option only came with RN-0.59.
Unfortunately, I guess there are no real options then. Another plan was just to try and see if we could kludge together the old JSC + the new RN, but I guess it looks like the JSC is what allows 64-bit to begin with. I suppose the last thing to try and see if we can somehow polyfill Intl for Hermes not having it?
We've already frozen our Android app, but it's pretty much stranded without the ability to upgrade anymore on the Google Play Store.
Hopefully if you could provide reproduced JS code and steps. Otherwise that is really difficult to find the root cause.
IMO, react-native-v8 might be a good option as that V8 on Android is reliable than JSC on Android. At least Chrome on Android should be the most heavy user to use V8. react-native-v8 did support 0.59.10 now and Intl is by default on. Please take a look and feel free to let me know if you faced any problems.
@j-wang old JSC + new RN is also possible, there is jsc-android@174650.0.2. However, the arm64 version is not well tested and we are not sure if it is stable or not. Intl polyfill + Hermes is also a good option from my point of view. I was thinking that we should leverage system's L10n to support Intl instead of ICU data that cost about 7MB binary size in JS engine.
We are using React-Native 0.60.5 + Hermes + 64-bit enabled and we are experiencing this error on HUAWEI MYA-L41, so Hermes alone doesn't fix it. Turning off 64-bit seems to avoid these issues, which is obviously not a solution since it's now mandatory to have 64-bit support when releasing an app. Has anybody made any progress regarding this issue or is it a different issue for each device? If I can provide any extra info, let me know.
@YoranRoels We have a small sample size of affected devices so take this with a grain of salt. We received a lot of complaints from a few users about 5+ crashes a day on 0.59.10.
We created Beta release of 0.60.4 + Hermes and it fixed the crashes for these effected users. As far as I'm aware these were all specific Samsung devices. It seems like these are very device specific issues.
@kylethielk Thanks for the swift response and the input.
I'm glad it has fixed it for your specific Samsung devices but at the moment we're afraid to roll out an app update since we don't have a large enough beta subset to be sure that it's fixed for all devices (it's already a 100% certainty that it doesn't work on the Huawei device that we test since we've tried multiple release builds on that device).
@YoranRoels - if your JS runtime is Hermes it shouldn't be possible to get this crash inside libjsc. Hermes replaces JSC on Android. Might want to double check that your app is really using Hermes if you are seeing stack traces with libjsc on these devices. Cheers.
I recently rolled out RN 0.59.10 to an app I manage with ~80k users and saw the same crashes like mentioned above. There is nothing devices specific visible. Most are Samsung and Huawei, so are the crashes. Look at the last column, for sure we can say: The higher the android version, the more likely there will be a crash. This are the crashes just from yesterday:
. | Crashes | Devices % | Crashes per Devices % |
---|---|---|---|
All | 127 | 100% | 0,17% |
Android 9 | 75 | 26,87% | 0,36% |
Android 8.0 | 35 | 20,05% | 0,23% |
Android 7.0 | 10 | 12,04% | 0,11% |
Android 6.0 | 4 | 11,69% | 0,04% |
Android 8.1 | 1 | 8,42% | 0,02% |
Android 5.1 | 1 | 5,72% | 0,02% |
Android 4.4 | 0 | 5,40% | 0,00% |
Android 7.1 | 1 | 4,36% | 0,03% |
Android 5.0 | 0 | 2,96% | 0,00% |
Android 4.2 | 0 | 1,08% | 0,00% |
Android 4.3 | 0 | 0,69% | 0,00% |
Android 4.1 | 0 | 0,69% | 0,00% |
0,36% of Android 9 devices crashed yesterday
The crashes are very random. We can't reproduce them. This is also visible in the statics. 127 Crashes on 120 users.
We are also facing the same situation, after the RN update to 0.59, our crash rates are increasing. What is the solution for this ?
@john1jan Read all the comments above. Try 0.59.10 first, then try hermes or v8.
On our side, tentatively hopeful for RN 0.60.5 + Hermes. It appears to be working without crashes—in all other cases, we've generally been able to replicate crashes on one of our fairly large collections of Android test phones.
So far, we haven't gotten anything. We'll probably be putting together a production release soon, so we'll see what happens out in the wild.
I hope this helps others that are still on 0.59.10
. But using https://github.com/Kudo/react-native-v8 solved the issue for us. See also: https://github.com/facebook/react-native/issues/24261#issuecomment-525404545
@smacgregor I came at this issue all wrong and it has nothing to do with this indeed, this was not our main error anymore since switching to Hermes, apologies. I still had this issue open when debugging several things at a time and I posted on several issues, this now being off-topic. We are now on 0.60.5 + Hermes and can confirm that's it's stable so far on all our test devices. Thanks for getting back to me either way!
@tanx on how many users did you test 0.59.10+V8?
On our side, tentatively hopeful for RN 0.60.5 + Hermes. It appears to be working without crashes—in all other cases, we've generally been able to replicate crashes on one of our fairly large collections of Android test phones.
So far, we haven't gotten anything. We'll probably be putting together a production release soon, so we'll see what happens out in the wild.
@j-wang Please Let us know if this worked "in the wild". @tanx Good news that v8 solved it for you. 👍
We are currently trying out V8 as well. Looks promising, no crashes yet. Will soon roll out to 300K+ devices and report back!
@lecramfriedrich Rolled out in production to everyone since yesterday, no crashes yet—so far so good.
@j-wang on RN0.60 or 0.59?
Same as https://github.com/facebook/react-native/issues/24261 but still occuring on device Caterpillar S41 (Android 8.0).
React Native version: 0.59.10