realm / realm-js

Realm is a mobile database: an alternative to SQLite & key-value stores
https://realm.io
Apache License 2.0
5.8k stars 577 forks source link

/lib/arm64/librealmreact.so Crashes on app launch #2391

Closed jaideep101 closed 5 years ago

jaideep101 commented 5 years ago

Goals

Expected Results

Actual Results

[18:48] Jaideep Singh (Contractor)

Build fingerprint: 'samsung/hero2ltexx/hero2lte:8.0.0/R16NW/G935FXXU2ERGE:user/release-keys'

Revision: '9'

ABI: 'arm64'

pid: 21491, tid: 21588, name: mqt_js >>> <<<

signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x37bf3a90253f5

x0 0000000000000000 x1 0000000000000000 x2 0000000000000005 x3 a9037bf3a90253f5

x4 0000000000000040 x5 0000007329905788 x6 0000000000ffffff x7 ffffffffffffffff

x8 00000000000000e2 x9 a0e2bc1e8f6365e0 x10 0000000000000001 x11 0000000000000000

x12 0000007337fbb2c8 x13 0000000000000050 x14 000000000000000d x15 aaaaaaaaaaaaaaab

x16 000000732a38c710 x17 000000733a046cb0 x18 0000007329905a84 x19 0000007337e6f690

x20 0000007337e6f690 x21 00000073299057b8 x22 0000007329905828 x23 0000007329907588x24 000000733baecbc8 x25 0000007329907588 x26 0000000000000000 x27 0000000000000000

x28 0000000000000001 x29 0000007329905660 x30 0000007329c65e84

sp 0000007329905600 pc 00037bf3a90253f5 pstate 0000000060000000

backtrace:

00 pc 00037bf3a90253f5

01 pc 0000000000258e80 /lib/arm64/librealmreact.so

02 pc 0000000000022414 /lib/arm64/libjscexecutor.so (_ZN8facebook3jsc10JSCRuntimeC2Ev+28)

03 pc 00000000000254d0 /lib/arm64/libjscexecutor.so (_ZN8facebook3jsc14makeJSCRuntimeEv+28)

04 pc 0000000000018b58 /lib/arm64/libjscexecutor.so

05 pc 00000000000a4468 /lib/arm64/libreactnativejni.so (_ZN8facebook5react16NativeToJsBridgeC2EPNS0_17JSExecutorFactoryENSt6__ndk110shared_ptrINS0_14ModuleRegistryEEENS5_INS0_18MessageQueueThreadEEENS5_INS0_16InstanceCallbackEEE+252)

06 pc 000000000009c0e0 /lib/arm64/libreactnativejni.so

07 pc 0000000000065d7c ==/lib/arm64/libreactnativejni.so

08 pc 0000000000063cac /lib/arm64/libreactnativejni.so

09 pc 0000000000059288 /lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react15JNativeRunnableEFvvEXadL_ZNS4_3runEvEES4_vJEE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_8RunnableEE8JavaPartESB_vE11_javaobjectEEE+32)

10 pc 0000000000059204 /lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail15FunctionWrapperIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EESD_vJEE4callEP7_JNIEnvP8_jobject+56)

11 pc 000000000007a63c /oat/arm64/base.odex (offset 0x75000)

Steps to Reproduce

Launching the app

Code Sample

defaultConfig { applicationId "package-name" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 137 versionName "8.2" multiDexEnabled true ndk { abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' // Added } vectorDrawables.useSupportLibrary = true resValue "string", "build_config_package", "package-name" if (BUILD_FOR_APPCENTER=='false') { signingConfig signingConfigs.release } }

Version of Realm and Tooling

diegolmello commented 5 years ago

I'm having the same issue (gathered from Google Play)

signal 7 (SIGBUS), code 1 (BUS_ADRALN)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> chat.rocket.reactnative <<<

backtrace:
  #00  pc 00037bf3a90253f5  <unknown>
  #01  pc 0000000000258e80  /data/data/chat.rocket.reactnative/lib-0/librealmreact.so
  #02  pc 0000000000022414  /data/data/chat.rocket.reactnative/lib-0/libjscexecutor.so
  #03  pc 00000000000254d0  /data/data/chat.rocket.reactnative/lib-0/libjscexecutor.so
  #04  pc 0000000000018b58  /data/data/chat.rocket.reactnative/lib-0/libjscexecutor.so
  #05  pc 00000000000a4468  /data/data/chat.rocket.reactnative/lib-0/libreactnativejni.so
  #06  pc 000000000009c0e0  /data/data/chat.rocket.reactnative/lib-0/libreactnativejni.so
  #07  pc 0000000000065d7c  /data/data/chat.rocket.reactnative/lib-0/libreactnativejni.so
  #08  pc 0000000000063cac  /data/data/chat.rocket.reactnative/lib-0/libreactnativejni.so
  #09  pc 0000000000059288  /data/data/chat.rocket.reactnative/lib-0/libreactnativejni.so
  #10  pc 0000000000059204  /data/data/chat.rocket.reactnative/lib-0/libreactnativejni.so
  #11  pc 0000000000d2e670  /data/app/chat.rocket.reactnative-1/oat/arm64/base.odex
diegolmello commented 5 years ago

It doesn't seem to be related to https://github.com/facebook/react-native/issues/24261 as pointed out on #2366

diegolmello commented 5 years ago

Removing 64-bit archs the error persists:

...
include "armeabi-v7a", "x86" //, "arm64-v8a", "x86_64"
...
def versionCodes = ["armeabi-v7a":1, "x86":2] // , "arm64-v8a": 3, "x86_64": 4]
signal 7 (SIGBUS), code 1 (BUS_ADRALN)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> chat.rocket.reactnative <<<

backtrace:
  #00  pc 00037bf3a90253f5  <unknown>
  #01  pc 0000000000258e80  /data/app/chat.rocket.reactnative-1/lib/arm64/librealmreact.so
  #02  pc 0000000000022414  /data/app/chat.rocket.reactnative-1/lib/arm64/libjscexecutor.so (_ZN8facebook3jsc10JSCRuntimeC2Ev+28)
  #03  pc 00000000000254d0  /data/app/chat.rocket.reactnative-1/lib/arm64/libjscexecutor.so (_ZN8facebook3jsc14makeJSCRuntimeEv+28)
  #04  pc 0000000000018b58  /data/app/chat.rocket.reactnative-1/lib/arm64/libjscexecutor.so
  #05  pc 00000000000a4468  /data/app/chat.rocket.reactnative-1/lib/arm64/libreactnativejni.so (_ZN8facebook5react16NativeToJsBridgeC2EPNS0_17JSExecutorFactoryENSt6__ndk110shared_ptrINS0_14ModuleRegistryEEENS5_INS0_18MessageQueueThreadEEENS5_INS0_16InstanceCallbackEEE+252)
  #06  pc 000000000009c0e0  /data/app/chat.rocket.reactnative-1/lib/arm64/libreactnativejni.so
  #07  pc 0000000000065d7c  /data/app/chat.rocket.reactnative-1/lib/arm64/libreactnativejni.so
  #08  pc 0000000000063cac  /data/app/chat.rocket.reactnative-1/lib/arm64/libreactnativejni.so
  #09  pc 0000000000059288  /data/app/chat.rocket.reactnative-1/lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react15JNativeRunnableEFvvEXadL_ZNS4_3runEvEES4_vJEE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_8RunnableEE8JavaPartESB_vE11_javaobjectEEE+32)
  #10  pc 0000000000059204  /data/app/chat.rocket.reactnative-1/lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail15FunctionWrapperIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EESD_vJEE4callEP7_JNIEnvP8_jobject+56)
  #11  pc 0000000000e8b580  /data/app/chat.rocket.reactnative-1/oat/arm64/base.odex
tianqiwuben commented 5 years ago

Same here. Around 50% chance it would crash

ouabing commented 5 years ago

Same random crash on app launch on Xiaomi 9 (MIUI 10 / Android 9.0). Logs below.

I'm using Kudo's JSC version for RN 64bit issue https://github.com/facebook/react-native/issues/24261 . So maybe they are not the same problem.

05-29 10:09:42.551 28767 28844 F libc    : Fatal signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x37bf3a90253f5 in tid 28844 (mqt_js), pid 28767 (angke.gamecores)
05-29 10:09:42.641 28863 28863 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-29 10:09:42.641 28863 28863 F DEBUG   : Build fingerprint: 'Xiaomi/cepheus/cepheus:9/PKQ1.181121.001/V10.2.15.0.PFACNXM:user/release-keys'
05-29 10:09:42.641 28863 28863 F DEBUG   : Revision: '0'
05-29 10:09:42.641 28863 28863 F DEBUG   : ABI: 'arm64'
05-29 10:09:42.641 28863 28863 F DEBUG   : pid: 28767, tid: 28844, name: mqt_js  >>> me.tangke.gamecores <<<
05-29 10:09:42.641 28863 28863 F DEBUG   : signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x37bf3a90253f5
05-29 10:09:42.641 28863 28863 F DEBUG   :     x0  0000000000000000  x1  0000000000000000  x2  0000000000000005  x3  a9037bf3a90253f5
05-29 10:09:42.641 28863 28863 F DEBUG   :     x4  0000000000000040  x5  0000007bcfb6aeb8  x6  0000000000000000  x7  7f7f7f7f7f7f7f7f
05-29 10:09:42.641 28863 28863 F DEBUG   :     x8  00000000000000e2  x9  9405c495deca9a50  x10 0000000000000001  x11 0000000000000000
05-29 10:09:42.641 28863 28863 F DEBUG   :     x12 0000000000000000  x13 0000000000004c40  x14 0000000000000050  x15 aaaaaaaaaaaaaaab
05-29 10:09:42.641 28863 28863 F DEBUG   :     x16 0000007bd0bde710  x17 0000007bd26b8d98  x18 0000000000000000  x19 0000007bd4f27d00
05-29 10:09:42.641 28863 28863 F DEBUG   :     x20 0000007bd4f27d00  x21 0000007bcfb6aef8  x22 0000007bcfb6af68  x23 0000007bcfb6c588
05-29 10:09:42.641 28863 28863 F DEBUG   :     x24 0000007bd4f40538  x25 0000007bcfb6c588  x26 0000007bd4f454a0  x27 0000000000000002
05-29 10:09:42.641 28863 28863 F DEBUG   :     x28 0000000000000001  x29 0000007bcfb6ada0
05-29 10:09:42.641 28863 28863 F DEBUG   :     sp  0000007bcfb6ad40  lr  0000007bd04b7e84  pc  00037bf3a90253f5
05-29 10:09:42.813 28863 28863 F DEBUG   :
05-29 10:09:42.813 28863 28863 F DEBUG   : backtrace:
05-29 10:09:42.813 28863 28863 F DEBUG   :     #00 pc 00037bf3a90253f5  <unknown>
05-29 10:09:42.813 28863 28863 F DEBUG   :     #01 pc 0000000000258e80  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/librealmreact.so
05-29 10:09:42.813 28863 28863 F DEBUG   :     #02 pc 0000000000022414  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libjscexecutor.so (facebook::jsc::JSCRuntime::JSCRuntime()+28)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #03 pc 00000000000254d0  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libjscexecutor.so (facebook::jsc::makeJSCRuntime()+28)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #04 pc 0000000000018b58  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libjscexecutor.so
05-29 10:09:42.813 28863 28863 F DEBUG   :     #05 pc 00000000000a4468  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/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>)+252)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #06 pc 000000000009c0e0  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libreactnativejni.so
05-29 10:09:42.813 28863 28863 F DEBUG   :     #07 pc 0000000000065d7c  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libreactnativejni.so
05-29 10:09:42.813 28863 28863 F DEBUG   :     #08 pc 0000000000063cac  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libreactnativejni.so
05-29 10:09:42.813 28863 28863 F DEBUG   :     #09 pc 0000000000059288  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react15JNativeRunnableEFvvEXadL_ZNS4_3runEvEES4_vJEE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_8RunnableEE8JavaPartESB_vE11_javaobjectEEE+32)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #10 pc 0000000000059204  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail15FunctionWrapperIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EESD_vJEE4callEP7_JNIEnvP8_jobject+56)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #11 pc 0000000000042f3c  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/oat/arm64/base.odex (offset 0x3d000) (com.facebook.jni.Countable.dispose [DEDUPED]+124)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #12 pc 0000000001765dec  /system/framework/arm64/boot-framework.oat (offset 0xa1f000) (android.os.Handler.dispatchMessage+76)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #13 pc 0000000000557388  /system/lib64/libart.so (art_quick_invoke_stub+584)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #14 pc 00000000000cfcc8  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #15 pc 0000000000280334  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #16 pc 000000000027a348  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #17 pc 0000000000526af4  /system/lib64/libart.so (MterpInvokeSuper+1420)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #18 pc 0000000000549994  /system/lib64/libart.so (ExecuteMterpImpl+14356)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #19 pc 00000000004f29e2  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/oat/arm64/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #20 pc 000000000025404c  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3375396565+488)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #21 pc 0000000000516d10  /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #22 pc 00000000005604fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #23 pc 0000000001f5a2a8  /system/framework/arm64/boot-framework.oat (offset 0xa1f000) (android.os.Looper.loop+1304)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #24 pc 000000000055764c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #25 pc 00000000000cfce8  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #26 pc 0000000000280334  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #27 pc 000000000027a348  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #28 pc 0000000000527960  /system/lib64/libart.so (MterpInvokeStatic+204)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #29 pc 0000000000549a94  /system/lib64/libart.so (ExecuteMterpImpl+14612)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #30 pc 00000000004f2afa  /data/app/me.tangke.gamecores-uQIPlepHsdmWfGG12QyUiQ==/oat/arm64/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run+74)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #31 pc 000000000025404c  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3375396565+488)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #32 pc 0000000000516d10  /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #33 pc 00000000005604fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #34 pc 00000000005574d8  /system/framework/arm64/boot-core-oj.oat (offset 0x2dc000) (java.lang.Thread.run+72)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #35 pc 0000000000557388  /system/lib64/libart.so (art_quick_invoke_stub+584)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #36 pc 00000000000cfcc8  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #37 pc 000000000045dd10  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #38 pc 000000000045edcc  /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+424)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #39 pc 0000000000489cbc  /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1120)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #40 pc 000000000009043c  /system/lib64/libc.so (__pthread_start(void*)+36)
05-29 10:09:42.813 28863 28863 F DEBUG   :     #41 pc 0000000000023c38  /system/lib64/libc.so (__start_thread+68)
nghiant96 commented 5 years ago

i am remove realm in app. It's working

kneth commented 5 years ago

@diegolmello From the stack trace (which includes /data/app/chat.rocket.reactnative-1/oat/arm64/base.odex) it looks like you haven't fully removed arm 64 bit.

radeno commented 5 years ago

I don't know if it helps, but we also removed 64bit support and crash happens. Yep it is Samsung :/ Bundle id replaced with com.random.app

React Native 0.59.8 / Realm 2.28

Samsung Galaxy S9+ (star2lte), Android 9

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.random.app <<<

backtrace:
  #00  pc 000000002dbeb084  /dev/ashmem/dalvik-main space (region space)_6248_6248 (deleted) (offset 0x5900000)
  #01  pc 000000000021b534  /data/data/com.random.app/lib-0/librealmreact.so
  #02  pc 000000000001e981  /data/data/com.random.app/lib-0/libjscexecutor.so (facebook::jsc::JSCRuntime::JSCRuntime()+16)
  #03  pc 0000000000020baf  /data/data/com.random.app/lib-0/libjscexecutor.so (facebook::jsc::makeJSCRuntime()+14)
  #04  pc 00000000000168ff  /data/data/com.random.app/lib-0/libjscexecutor.so
  #05  pc 00000000000915d3  /data/data/com.random.app/lib-0/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>)+170)
  #06  pc 000000000008c03b  /data/data/com.random.app/lib-0/libreactnativejni.so
  #07  pc 0000000000067faf  /data/data/com.random.app/lib-0/libreactnativejni.so
  #08  pc 0000000000066729  /data/data/com.random.app/lib-0/libreactnativejni.so
  #09  pc 000000000005f00b  /data/data/com.random.app/lib-0/libreactnativejni.so (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react15JNativeRunnableEFvvEXadL_ZNS4_3runEvEES4_vJEE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_8RunnableEE8JavaPartESB_vE11_javaobjectEEE+10)
  #10  pc 000000000005efaf  /data/data/com.random.app/lib-0/libreactnativejni.so (_ZN8facebook3jni6detail15FunctionWrapperIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EESD_vJEE4callEP7_JNIEnvP8_jobject+30)
  #11  pc 0000000000021853  /data/app/com.random.app-OyQ-M1Y0C___y5K53a-Wdg==/oat/arm/base.odex (com.facebook.jni.Countable.dispose [DEDUPED]+74)
  #12  pc 0000000000985081  /system/framework/arm/boot-framework.oat (android.os.Handler.dispatchMessage+64)
  #13  pc 0000000000411175  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #14  pc 00000000003ea239  /system/lib/libart.so (art_quick_invoke_stub+224)
  #15  pc 00000000000a1615  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
  #16  pc 00000000001e8829  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236)
  #17  pc 00000000001e3317  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814)
  #18  pc 00000000003e53af  /system/lib/libart.so (MterpInvokeSuper+1098)
  #19  pc 0000000000403f94  /system/lib/libart.so (ExecuteMterpImpl+14356)
  #20  pc 0000000000310344  /data/app/com.random.app-OyQ-M1Y0C___y5K53a-Wdg==/oat/arm/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage)
  #21  pc 00000000001c7a93  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3304252587+378)
  #22  pc 00000000001cc0bf  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82)
  #23  pc 00000000003d8979  /system/lib/libart.so (artQuickToInterpreterBridge+880)
  #24  pc 00000000004156ff  /system/lib/libart.so (art_quick_to_interpreter_bridge+30)
  #25  pc 00000000009877d3  /system/framework/arm/boot-framework.oat (android.os.Looper.loop+1162)
  #26  pc 0000000000411175  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #27  pc 00000000003ea33b  /system/lib/libart.so (art_quick_invoke_static_stub+222)
  #28  pc 00000000000a1627  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154)
  #29  pc 00000000001e8829  /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+236)
  #30  pc 00000000001e3317  /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+814)
  #31  pc 00000000003e5e6f  /system/lib/libart.so (MterpInvokeStatic+130)
  #32  pc 0000000000404094  /system/lib/libart.so (ExecuteMterpImpl+14612)
  #33  pc 00000000003104d2  /data/app/com.random.app-OyQ-M1Y0C___y5K53a-Wdg==/oat/arm/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run+74)
  #34  pc 00000000001c7a93  /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3304252587+378)
  #35  pc 00000000001cc0bf  /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82)
  #36  pc 00000000003d8979  /system/lib/libart.so (artQuickToInterpreterBridge+880)
  #37  pc 00000000004156ff  /system/lib/libart.so (art_quick_to_interpreter_bridge+30)
  #38  pc 0000000000219669  /system/framework/arm/boot.oat (java.lang.Thread.run+64)
  #39  pc 0000000000411175  /system/lib/libart.so (art_quick_invoke_stub_internal+68)
  #40  pc 00000000003ea239  /system/lib/libart.so (art_quick_invoke_stub+224)
  #41  pc 00000000000a1615  /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136)
  #42  pc 000000000034aee5  /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52)
  #43  pc 000000000034bc3d  /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+320)
  #44  pc 000000000036cfc3  /system/lib/libart.so (art::Thread::CreateCallback(void*)+866)
  #45  pc 0000000000064829  /system/lib/libc.so (__pthread_start(void*)+140)
  #46  pc 000000000001e375  /system/lib/libc.so (__start_thread+24)
nvasilov commented 5 years ago

Same issue on Galaxy S9+ (Android 9)

build.gradle

def enableProguardInReleaseBuilds = true
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"

package.json

"dependencies": {
    "axios": "0.18.0",
    "moment": "2.24.0",
    "native-base": "2.12.1",
    "react": "16.8.3",
    "react-native": "0.59.8",
    "react-native-firebase": "5.4.0",
    "react-native-gesture-handler": "1.2.1",
    "react-native-vector-icons": "6.4.2",
    "react-navigation": "3.11.0",
    "react-redux": "7.0.3",
    "react-timer-mixin": "0.13.4",
    "realm": "2.28.0",
    "redux": "4.0.1",
    "redux-thunk": "2.3.0"
  },
  "devDependencies": {
    "@babel/core": "7.4.5",
    "@babel/runtime": "7.4.5",
    "babel-jest": "24.8.0",
    "jest": "24.8.0",
    "metro-react-native-babel-preset": "0.54.1",
    "react-test-renderer": "16.8.3"
  }

bugreport-2019-05-29-09-34

05-29 09:34:15.764 10251  5680  5680 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-29 09:34:15.764 10251  5680  5680 F DEBUG   : Build fingerprint: 'samsung/star2ltexx/star2lte:9/PPR1.180610.011/G965FXXS3CSD1:user/release-keys'
05-29 09:34:15.764 10251  5680  5680 F DEBUG   : Revision: '26'
05-29 09:34:15.764 10251  5680  5680 F DEBUG   : ABI: 'arm64'
05-29 09:34:15.764 10251  5680  5680 F DEBUG   : pid: 5634, tid: 5676, name: mqt_js  >>>  <<<
05-29 09:34:15.765 10251  5680  5680 F DEBUG   : signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0x37bf3a90253f5
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x0  0000000000000000  x1  0000000000000000  x2  0000000000000005  x3  a9037bf3a90253f5
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x4  0000000000000040  x5  0000007625f9bdf8  x6  0000000000000000  x7  7f7f7f7f7f7f7f7f
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x8  00000000000000e2  x9  cac323da10e55d30  x10 0000000000000001  x11 0000000000000000
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x12 00000076288ccea8  x13 000000000000e3b3  x14 000000763ce00000  x15 0000000000000000
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x16 0000007627309710  x17 0000007627b08cb0  x18 0000000000000008  x19 00000076390a2d50
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x20 00000076390a2d50  x21 0000007625f9beb8  x22 0000007625f9bf28  x23 0000007625f9d588
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x24 000000763ce14178  x25 0000007625f9d588  x26 00000076288c2ca0  x27 0000000000000002
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     x28 0000000000000001  x29 0000007625f9bd60
05-29 09:34:15.765 10251  5680  5680 F DEBUG   :     sp  0000007625f9bd00  lr  0000007626be2e84  pc  00037bf3a90253f5
05-29 09:34:15.857 10251  5680  5680 F DEBUG   : 
05-29 09:34:15.857 10251  5680  5680 F DEBUG   : backtrace:
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #00 pc 00037bf3a90253f5  <unknown>
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #01 pc 0000000000258e80  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/librealmreact.so
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #02 pc 0000000000022414  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libjscexecutor.so (facebook::jsc::JSCRuntime::JSCRuntime()+28)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #03 pc 00000000000254d0  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libjscexecutor.so (facebook::jsc::makeJSCRuntime()+28)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #04 pc 0000000000018b58  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libjscexecutor.so
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #05 pc 00000000000a4468  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/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>)+252)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #06 pc 000000000009c0e0  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libreactnativejni.so
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #07 pc 0000000000065d7c  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libreactnativejni.so
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #08 pc 0000000000063cac  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libreactnativejni.so
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #09 pc 0000000000059288  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail13MethodWrapperIMNS_5react15JNativeRunnableEFvvEXadL_ZNS4_3runEvEES4_vJEE8dispatchENS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassIS4_NS3_8RunnableEE8JavaPartESB_vE11_javaobjectEEE+32)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #10 pc 0000000000059204  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/lib/arm64/libreactnativejni.so (_ZN8facebook3jni6detail15FunctionWrapperIPFvNS0_9alias_refIPNS1_8JTypeForINS0_11HybridClassINS_5react15JNativeRunnableENS6_8RunnableEE8JavaPartES8_vE11_javaobjectEEEEXadL_ZNS1_13MethodWrapperIMS7_FvvEXadL_ZNS7_3runEvEES7_vJEE8dispatchESE_EESD_vJEE4callEP7_JNIEnvP8_jobject+56)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #11 pc 0000000000012cbc  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/oat/arm64/base.odex (offset 0x12000) (com.facebook.jni.Countable.dispose [DEDUPED]+124)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #12 pc 0000000000b20ffc  /system/framework/arm64/boot-framework.oat (offset 0x41d000) (android.os.Handler.dispatchMessage+76)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #13 pc 0000000000561988  /system/lib64/libart.so (art_quick_invoke_stub+584)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #14 pc 00000000000cff40  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #15 pc 00000000002862f8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #16 pc 00000000002802b4  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+948)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #17 pc 00000000005312e0  /system/lib64/libart.so (MterpInvokeSuper+1408)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #18 pc 0000000000554094  /system/lib64/libart.so (ExecuteMterpImpl+14356)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #19 pc 000000000016830c  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/oat/arm64/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #20 pc 0000000000259db0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3150795007+496)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #21 pc 0000000000521390  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #22 pc 000000000056aafc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #23 pc 0000000000b24160  /system/framework/arm64/boot-framework.oat (offset 0x41d000) (android.os.Looper.loop+1264)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #24 pc 0000000000561c4c  /system/lib64/libart.so (art_quick_invoke_static_stub+604)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #25 pc 00000000000cff60  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+232)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #26 pc 00000000002862f8  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #27 pc 00000000002802b4  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+948)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #28 pc 0000000000532154  /system/lib64/libart.so (MterpInvokeStatic+204)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #29 pc 0000000000554194  /system/lib64/libart.so (ExecuteMterpImpl+14612)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #30 pc 000000000016849a  /data/app/com.usarb_receiver-wLnYF7gJDpyaYsIXfENbBg==/oat/arm64/base.vdex (com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run+74)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #31 pc 0000000000259db0  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3150795007+496)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #32 pc 0000000000521390  /system/lib64/libart.so (artQuickToInterpreterBridge+1032)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #33 pc 000000000056aafc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
05-29 09:34:15.857 10251  5680  5680 F DEBUG   :     #34 pc 000000000025d068  /system/framework/arm64/boot.oat (offset 0x114000) (java.lang.Thread.run+72)
05-29 09:34:15.858 10251  5680  5680 F DEBUG   :     #35 pc 0000000000561988  /system/lib64/libart.so (art_quick_invoke_stub+584)
05-29 09:34:15.858 10251  5680  5680 F DEBUG   :     #36 pc 00000000000cff40  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
05-29 09:34:15.858 10251  5680  5680 F DEBUG   :     #37 pc 0000000000467d60  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
05-29 09:34:15.858 10251  5680  5680 F DEBUG   :     #38 pc 0000000000468e28  /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+424)
05-29 09:34:15.858 10251  5680  5680 F DEBUG   :     #39 pc 00000000004946b0  /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1120)
05-29 09:34:15.858 10251  5680  5680 F DEBUG   :     #40 pc 0000000000084df8  /system/lib64/libc.so (__pthread_start(void*)+208)
05-29 09:34:15.858 10251  5680  5680 F DEBUG   :     #41 pc 0000000000023ac4  /system/lib64/libc.so (__start_thread+68)
ouabing commented 5 years ago

@kneth Is there any compatibility issue to downgrade realm version? I'm planning on rollback to 32bit and v2.27.0, and release a new app version.

8BallBomBom commented 5 years ago

Also experiencing this crash on 32bit with a RN 57.8 project and also a new project under RN 59.8 with 64bit -> Realm 2.28.0. Samsung Galaxy S7 Edge.

kneth commented 5 years ago

@ouabing No, you should be able to downgrade to v2.27.0.

kneth commented 5 years ago

@8BallBomBom Can you push a stack trace from your 32 bit crash?

radeno commented 5 years ago

@kneth if it helps, report from Firebase Test Galaxy S7 edge, API Level 23. I can share you whole test bucket with large amount of data.

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/hero2ltexx/hero2lte:6.0.1/MMB29K/G935FXXU1APB6:user/release-keys'
Revision: '9'
ABI: 'arm'
pid: 7788, tid: 7887, name: mqt_js  >>> com.random.app <<<
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x460eb084
    r0 00000000  r1 00000000  r2 18a61d2c  r3 460eb084
    r4 d8dedb88  r5 00000000  r6 d7a633ec  r7 d7a63338
    r8 f485d71c  r9 f485d72c  sl ee715a88  fp d7a636c4
    ip d8dedd14  sp d7a63300  lr d88f3538  pc 460eb084  cpsr 60070010
backtrace:
    #00 pc 134ea084  /dev/ashmem/dalvik-main space 1 (deleted) (offset 0x1000)
    #01 pc 0021b534  /data/app/com.random.app-1/lib/arm/librealmreact.so
    #02 pc 0001e981  /data/app/com.random.app-1/lib/arm/libjscexecutor.so (facebook::jsc::JSCRuntime::JSCRuntime()+16)
    #03 pc 00020baf  /data/app/com.random.app-1/lib/arm/libjscexecutor.so (facebook::jsc::makeJSCRuntime()+14)
    #04 pc 000168ff  /data/app/com.random.app-1/lib/arm/libjscexecutor.so
    #05 pc 000915d3  /data/app/com.random.app-1/lib/arm/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>)+170)
    #06 pc 0008c03b  /data/app/com.random.app-1/lib/arm/libreactnativejni.so
    #07 pc 00067faf  /data/app/com.random.app-1/lib/arm/libreactnativejni.so
    #08 pc 00066729  /data/app/com.random.app-1/lib/arm/libreactnativejni.so
    #09 pc 0005f00b  /data/app/com.random.app-1/lib/arm/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*>)+10)
    #10 pc 0005efaf  /data/app/com.random.app-1/lib/arm/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>::dis
    #11 pc 00d7e7af  /data/app/com.random.app-1/oat/arm/base.odex (offset 0xa43000)
8BallBomBom commented 5 years ago

Pretty much just getting this on the 32bit app via logcat and on the 64bit app it seems to be a similar error but Fatal Signal 7.

    --------- beginning of crash
2019-05-29 17:36:45.893 30864-30932/com.testapp.debug A/libc: Fatal signal 11 (SIGSEGV), code 2, fault addr 0x4604b088 in tid 30932 (mqt_js)

Downgrading Realm to version 2.27.0 seems to resolve the issue.

radeno commented 5 years ago

Same results as @8BallBomBom .

Realm 2.27 on 32bit architecture works. Realm 2.28 on 32bit architecture crashing.

My logs before.

simonask commented 5 years ago

Update: We have analyzed the situation today, and we're pretty sure that the problem is a wrong call to __builtin___cache_clear() after overwriting instructions to install a hook in the RN runtime.

The call ends up not invalidating the instruction cache by mistake, and the effect is that we load a "garbage" target address for our trampoline.

The garbage is actually instructions from the function that we are hooking into. Several of the stack traces reported here have the pc register set to the exact same value, and if you disassemble the bytes of the address as ARM instructions, it turns out they are actually valid and plausible instructions from the function that we are hooking into. (ARM assembly is nice here because all instructions are 4 bytes long, so any 4-byte aligned load from a function body will yield instructions that can be disassembled.)

A couple of things have to be true for this hypothesis to fully explain the crashes:

  1. The thread must not be rescheduled to a CPU core with a different cache (otherwise the crash will not occur).
  2. The hook code (16 bytes in our case on ARM64) must span two different cache lines, or be loaded from different caches. Otherwise the hook would appear to not be installed at all, or it would appear to be fully installed.
  3. Interaction between icache and dcache can have an effect, and I'm not sure at all whether Samsung does something weird/different from other vendors here. It's possible that the icache is actually updated, but reads an immediate value (the jump target) embedded in the assembly at pc + 8 via the dcache. I don't know enough about ARM microarchitectures to say for sure...

As I understand, Samsung has historically made different choices with regards to the cache hierarchy on their ARM SoCs, so it seems not entirely implausible that a different cache design can explain the difference in behavior. It may work by accident on the more commonplace Snapdragon/Cortex cores.

Thank you to everyone here who posted crash reports and information, it has been extremely helpful in finding and diagnosing this bug! :heart:

I believe a new beta release will be out shortly. Unfortunately we don't have access to any of the affected device models at the moment, so any help in testing the upcoming release with the bugfix is extremely appreciated!

radeno commented 5 years ago

@simonask great news! :) About accessing to affected device models.

You can use https://docs.microsoft.com/en-us/appcenter/test-cloud/ and https://firebase.google.com/docs/test-lab as two largest platforms for testing on real devices. You are no needed to have physical devices by own.

kneth commented 5 years ago

We plan to make a v2.29.0-alpha.1 today or early tomorrow (European time). Due to public holidays, we will not be able to pick up your feedback until Monday next week.

diegolmello commented 5 years ago

@simonask @kneth I'm happy to help. I don't have a device in hands neither, but I have a very helpful user who does.

8BallBomBom commented 5 years ago

I have a few Samsung devices ready to test any time. No worries.

kneth commented 5 years ago

I have published v2.29.0-alpha.1. We will appreciate any feedback (both 32 and 64 bit).

8BallBomBom commented 5 years ago

I can confirm Realm 2.29.0-alpha.1 fixes the crashes for my project running RN 57.8 32bit and also a new clean project running RN 59.8 64bit on a Samsung Galaxy S7 Edge.

diegolmello commented 5 years ago

I build a version and sent a version to the affected user, but I can't rush him. I'll keep you updated.

ouabing commented 5 years ago

2.29.0-alpha.1 also fixed the crashes on Xiaomi 9 with 64bit apk. Thanks guys!

8BallBomBom commented 5 years ago

@kneth @simonask Fantastic, this pretty much lifts the final block preventing me upgrading to RN 59.8 thanks :)

wreiske commented 5 years ago

I build a version and sent a version to the affected user, but I can't rush him. I'll keep you updated.

Finally had a second to test it. The new build works on my SM-N920V (Note 5)

diegolmello commented 5 years ago

@kneth it works!

Due to public holidays, we will not be able to pick up your feedback until Monday next week.

Do you have to release only on monday or can you release it today? Is it safe to use v2.29.0-alpha.1 on beta?

kneth commented 5 years ago

v2.29.0-alpha.1 contains only this fix compared to v2.28.0 so I think it is safe to use. Due to public holidays, I prefer to wait until Monday to do a release.

zzorba commented 5 years ago

Just to chime in, I was seeing a lot of these crashes and after deploying (to several thousand users) last night they all seem to be fixed.

Thanks for the quick turnaround here.

ferrannp commented 5 years ago

I experienced this issue with Samsung S9 too. Thanks for the quick fix @kneth & @simonask ❤️ . I'll be trying it asap.

kneth commented 5 years ago

I have released the fix as v2.28.1. React Native folks, please upgrade soon.

brianinator commented 5 years ago

@kneth I tested out and still get crash. I added details here: https://github.com/realm/realm-js/issues/2282#issuecomment-498329160

manithin commented 5 years ago

still has the issue. however after disabling proguardinreleseversion, the crash does not happen. the realm version I use is 2.28.1 by the way

kneth commented 5 years ago

@manithin What you're saying is that the interaction with ProGuard which is the issue, right?

8BallBomBom commented 5 years ago

@manithin Does adding this to your proguard file fix the issue? -keep class io.realm.react.**

manithin commented 5 years ago

@manithin What you're saying is that the interaction with ProGuard which is the issue, right?

Yes, that is correct. On a separate issue thread, someone gave this solution as well but I have not tried it- https://github.com/facebook/react-native/issues/23764#issuecomment-505139712

kneth commented 5 years ago

@manithin Please post an update if you try the proposed solution.

manithin commented 5 years ago

@manithin Does adding this to your proguard file fix the issue? -keep class io.realm.react.**

@kneth yes this did work. Just checking, is it mentioned somewhere in the documentation?

8BallBomBom commented 5 years ago

It does state this on the Realm Java install guide.

A ProGuard configuration is provided as part of the Realm library. This means that you don’t need to add any Realm specific rules to your ProGuard configuration.

@kneth That doesn't seem to apply for the React Native Realm for some reason.

kneth commented 5 years ago

@manithin Sounds like we need to update the documentation :smile:

@8BallBomBom True - we don't provide it for Realm JS. We should - or at least document it.

manithin commented 5 years ago

That would be amazing. Thank you @kneth and @8BallBomBom for the quick response!

Aside from the issue, I have been using realm for over a year and thanks for creating a great solution!!

aniciom commented 5 years ago

Awesome, thanks for the fix!

nates-dennis commented 5 years ago

i get this error also after upgrading to react native 0.60.0. I have already had @manithin solution I am also having the issue that it only happens when enableProguardInReleaseBuilds is set to true in which i use for minifyEnabled and shrinkResources.

kneth commented 5 years ago

With RN v0.60 it might be related to #2460

nates-dennis commented 5 years ago

With RN v0.60 it might be related to #2460

went through this thread it seems to have no conclusion yet. all the suggestions stated i have already done but i still have the same issue this only happens when proguard is enabled with shrinkResources and minifyEnabled

shubhang93 commented 5 years ago

Seems to be back in realm 2.29.2 with React native 0.60.5

edritech93 commented 5 years ago

problem on Android only ?

nates-dennis commented 5 years ago

problem on Android only ?

My problem is as it comes from allowing 64 bit builds

kneth commented 5 years ago

@shubhang93 Can you try with RN 0.59?

@nates-dennis Is it possible for you to create a very simple app which can reproduce the issue?