facebook / hermes

A JavaScript engine optimized for running React Native.
https://hermesengine.dev/
MIT License
9.5k stars 604 forks source link

Hermes 0.4.0 & RN-0.62.0-rc.1 startup crash #185

Closed swabbass closed 4 years ago

swabbass commented 4 years ago

Hey, we are testing Hermes in our project we have these configurations :

package.json:

    "react": "16.11.0",
    "hermes-engine": "0.4.0",
    "react-native": "0.62.0-rc.1",

gradle:

def hermesPath = "../../../../node_modules/hermes-engine/android/";
    debugImplementation files(hermesPath + "hermes-debug.aar")
    releaseImplementation files(hermesPath + "hermes-release.aar")

running on emulator api 28 x86_64:

2020-02-11 17:51:40.062 15712-15712/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG: Build fingerprint: 'google/sdk_gphone_x86_64/generic_x86_64:9/PSR1.180720.093/5456446:userdebug/dev-keys'
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG: Revision: '0'
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG: ABI: 'x86_64'
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG: pid: 15583, tid: 15708, name: mqt_js  >>> [package_name] <<<
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x9
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG: Cause: null pointer dereference
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG:     rax 0000000000000001  rbx 00007dc901e7b990  rcx 0000000000000000  rdx 000000007fffffff
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG:     r8  0000000000000000  r9  0000000000000000  r10 0000000000000000  r11 0000000000000246
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG:     r12 00007dc916b64f00  r13 00007dc901e7b9a8  r14 00007dc916b64f70  r15 00007dc901e7b980
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG:     rdi 00007dc916ae66b0  rsi 00007dc916b64f70
2020-02-11 17:51:40.062 15712-15712/? A/DEBUG:     rbp 00007dc8fe8b7cc8  rsp 00007dc8fe8b78d0  rip 00007dc903cb73d3
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG: backtrace:
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #00 pc 00000000000323d3  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libhermes.so
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #01 pc 000000000002ad12  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libhermes.so (facebook::hermes::makeHermesRuntime(hermes::vm::RuntimeConfig const&)+34)
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #02 pc 00000000000201de  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libhermes-executor-release.so (facebook::react::HermesExecutorFactory::createJSExecutor(std::__ndk1::shared_ptr<facebook::react::ExecutorDelegate>, std::__ndk1::shared_ptr<facebook::react::MessageQueueThread>)+62)
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #03 pc 00000000000a861e  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libreactnativejni.so (facebook::react::NativeToJsBridge::NativeToJsBridge(facebook::react::JSExecutorFactory*, std::__ndk1::shared_ptr<facebook::react::ModuleRegistry>, std::__ndk1::shared_ptr<facebook::react::MessageQueueThread>, std::__ndk1::shared_ptr<facebook::react::InstanceCallback>)+206)
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #04 pc 00000000000a0a7f  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libreactnativejni.so
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #05 pc 00000000000a090b  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libreactnativejni.so
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #06 pc 0000000000070f25  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libreactnativejni.so
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #07 pc 000000000006eb86  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libreactnativejni.so
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #08 pc 000000000005e2e4  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libreactnativejni.so (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react15JNativeRunnableEFvvEXadL_ZNS4_3runEvEES4_vJEE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_8RunnableEE8JavaPartESB_vE11_javaobjectEEE+20)
2020-02-11 17:51:40.104 15712-15712/? A/DEBUG:     #09 pc 000000000005e261  /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/lib/x86_64/libreactnativejni.so (_ZN8facebook3jni6detail15FunctionWrapperIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EESD_vJEE4callEP7_JNIEnvP8_jobject+49)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #10 pc 00000000005ce061  /system/lib64/libart.so (art_quick_generic_jni_trampoline+209)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #11 pc 000000000000e099  /dev/ashmem/dalvik-jit-code-cache (deleted) (android.os.Handler.handleCallback+73)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #12 pc 000000000002fb29  /dev/ashmem/dalvik-jit-code-cache (deleted) (android.os.Handler.dispatchMessage+73)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #13 pc 00000000005c3ab4  /system/lib64/libart.so (art_quick_invoke_stub+756)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #14 pc 00000000000cf5f2  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+226)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #15 pc 00000000002a1b91  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+321)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #16 pc 000000000029ac6d  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1261)
2020-02-11 17:51:40.105 15712-15712/? A/DEBUG:     #17 pc 00000000005901dd  /system/lib64/libart.so (MterpInvokeSuper+1405)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #18 pc 00000000005b5019  /system/lib64/libart.so (ExecuteMterpImpl+14361)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #19 pc 00000000004279bc  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/base.apk (deleted) (com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #20 pc 0000000000271ee1  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2620325170+561)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #21 pc 000000000057e547  /system/lib64/libart.so (artQuickToInterpreterBridge+1223)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #22 pc 00000000005ce1ec  /system/lib64/libart.so (art_quick_to_interpreter_bridge+140)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #23 pc 0000000000019d7a  /dev/ashmem/dalvik-jit-code-cache (deleted) (android.os.Looper.loop+1178)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #24 pc 00000000005c3e16  /system/lib64/libart.so (art_quick_invoke_static_stub+806)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #25 pc 00000000000cf603  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+243)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #26 pc 00000000002a1b91  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+321)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #27 pc 000000000029ac6d  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1261)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #28 pc 000000000059116d  /system/lib64/libart.so (MterpInvokeStatic+189)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #29 pc 00000000005b5119  /system/lib64/libart.so (ExecuteMterpImpl+14617)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #30 pc 0000000000427b4a  /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/[package_name]-i_jBNfNf-ZadNoUSIbtMyg==/base.apk (deleted) (com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run+74)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #31 pc 0000000000271ee1  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2620325170+561)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #32 pc 0000000000277a4e  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+222)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #33 pc 000000000029ac54  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1236)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #34 pc 0000000000590b58  /system/lib64/libart.so (MterpInvokeInterface+1480)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #35 pc 00000000005b5199  /system/lib64/libart.so (ExecuteMterpImpl+14745)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #36 pc 00000000000ca806  /system/framework/boot.vdex (java.lang.Thread.run+12)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #37 pc 0000000000271ee1  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2620325170+561)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #38 pc 000000000057e547  /system/lib64/libart.so (artQuickToInterpreterBridge+1223)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #39 pc 00000000005ce1ec  /system/lib64/libart.so (art_quick_to_interpreter_bridge+140)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #40 pc 00000000005c3ab4  /system/lib64/libart.so (art_quick_invoke_stub+756)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #41 pc 00000000000cf5f2  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+226)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #42 pc 00000000004b7569  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+89)
2020-02-11 17:51:40.106 15712-15712/? A/DEBUG:     #43 pc 00000000004b883a  /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+442)
2020-02-11 17:51:40.107 15712-15712/? A/DEBUG:     #44 pc 00000000004e7af8  /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1352)
2020-02-11 17:51:40.107 15712-15712/? A/DEBUG:     #45 pc 0000000000092bab  /system/lib64/libc.so (__pthread_start(void*)+27)
2020-02-11 17:51:40.107 15712-15712/? A/DEBUG:     #46 pc 000000000002af2d  /system/lib64/libc.so (__start_thread+61)

the compilations seem to be good and no errors at all in debug and release but when running it fails... any idea what can we do here? or what is happening? thx

mhorowitz commented 4 years ago

@swabbass thanks for your question, and for trying to use the latest Hermes.

At this time, the version of RN and the version of Hermes are tightly coupled. 0.62.0-rc.1 is set up to use Hermes 0.3.0, although even that may not work, as there were issues until very recently with Hermes on the RC branch. Those will be fixed in an upcoming RC.

In addition, we'll be landing changes to master to update to Hermes 0.4.0 soon. I also hope to pick this onto the RN 0.62.0 branch.

In the future, we hope to make the coupling between RN and Hermes more flexible to avoid this kind of issue, but this is a complex problem, so there's no timeline yet.