realm-java: Ndk crash in Table.removeColumn. Signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
Goal
Running a migration removing objects/tables with thousands of instances with cross reference, where first we remove the cross-referencing fields:
schema.getOrFail(“RAirport”) .removeField(“place”)
schema.getOrFail(“RStation”) .removeField(“place”)
schema.getOrFail(“RPlace”) .removeField(“airport”) .removeField(“station”)
And then remove the tables themselves:
schema.remove("RAirport")
schema.remove("RStation")
schema.remove("RPlace")
Actual Results
The first step: removeFields executions are crashing, if occurring then it is hundreds even thousands per user. Native crash reported in play console:
backtrace: #00 pc 00000000002fbe86 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 000000000025ee0d /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 000000000035a4cf /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 000000000035c93d /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 000000000035b74d /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 000000000035b645 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 000000000023da83 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) (Java_io_realm_internal_Table_nativeRemoveColumn+46) #00 pc 00000000000a7145 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.odex (offset 0xa7000) (com.google.ar.core.Anchor.nativeDetach [DEDUPED]+100) #00 pc 0000000000421775 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #00 pc 00000000003fa1c9 /system/lib/libart.so (art_quick_invoke_stub+224) #00 pc 00000000000a180d /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136) #00 pc 00000000001ecedb /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+230) #00 pc 00000000001e7b55 /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+784) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 0000000001807958 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.internal.Table.removeColumn+40) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f72cb /system/lib/libart.so (MterpInvokeVirtualQuick+434) #00 pc 0000000000418294 /system/lib/libart.so (ExecuteMterpImpl+29972) #00 pc 00000000017acc7e /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.MutableRealmObjectSchema.removeField+90) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f72cb /system/lib/libart.so (MterpInvokeVirtualQuick+434) #00 pc 0000000000418294 /system/lib/libart.so (ExecuteMterpImpl+29972) #00 pc 0000000000c07cb2 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (com.kiwi.android.core.helper.MigrationHelper.migrateFrom83To84+50) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 0000000000c03f10 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (com.kiwi.android.core.helper.MigrationHelper.access$migrateFrom83To84) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5e53 /system/lib/libart.so (MterpInvokeStatic+130) #00 pc 0000000000414694 /system/lib/libart.so (ExecuteMterpImpl+14612) #00 pc 0000000000c015c4 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (com.kiwi.android.core.helper.MigrationHelper$RealmMigrations.migrate+164) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e8a37 /system/lib/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+774) #00 pc 00000000003f6ca1 /system/lib/libart.so (MterpInvokeInterfaceRange+1020) #00 pc 0000000000414a14 /system/lib/libart.so (ExecuteMterpImpl+15508) #00 pc 00000000017a02e4 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.BaseRealm$6.onMigrationNeeded+16) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e8a37 /system/lib/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+774) #00 pc 00000000003f6ca1 /system/lib/libart.so (MterpInvokeInterfaceRange+1020) #00 pc 0000000000414a14 /system/lib/libart.so (ExecuteMterpImpl+15508) #00 pc 0000000001804b82 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.internal.OsSharedRealm.runMigrationCallback+30) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0cdb /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82) #00 pc 00000000003e870b /system/lib/libart.so (artQuickToInterpreterBridge+882) #00 pc 0000000000425cff /system/lib/libart.so (art_quick_to_interpreter_bridge+30) #00 pc 0000000000421775 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #00 pc 00000000003fa2cb /system/lib/libart.so (art_quick_invoke_static_stub+222) #00 pc 00000000000a181f /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154) #00 pc 0000000000358791 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52) #00 pc 00000000003585a5 /system/lib/libart.so (art::InvokeWithVarArgs(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+300) #00 pc 00000000002992a9 /system/lib/libart.so (art::JNI::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+476) #00 pc 000000000022472b /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 0000000000224673 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 0000000000257d2b /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 0000000000224375 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 000000000028ad53 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 0000000000268e5d /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 00000000002897db /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 00000000002a11b3 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 00000000002890f7 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) #00 pc 0000000000238e47 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/split_config.armeabi_v7a.apk!lib/armeabi-v7a/librealm-jni.so (offset 0x868000) (Java_io_realm_internal_OsSharedRealm_nativeGetSharedRealm+106) #00 pc 00000000000ade03 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.odex (offset 0xa7000) (io.realm.internal.OsObject.nativeCreateNewObjectWithObjectIdPrimaryKey [DEDUPED]+162) #00 pc 0000000000421775 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #00 pc 00000000003fa2cb /system/lib/libart.so (art_quick_invoke_static_stub+222) #00 pc 00000000000a181f /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154) #00 pc 00000000001ecedb /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+230) #00 pc 00000000001e8a51 /system/lib/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+800) #00 pc 00000000003f7079 /system/lib/libart.so (MterpInvokeStaticRange+100) #00 pc 0000000000414994 /system/lib/libart.so (ExecuteMterpImpl+15380) #00 pc 000000000180460c /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.internal.OsSharedRealm.<init>+108) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 00000000018043ae /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.internal.OsSharedRealm.getInstance+26) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5e53 /system/lib/libart.so (MterpInvokeStatic+130) #00 pc 0000000000414694 /system/lib/libart.so (ExecuteMterpImpl+14612) #00 pc 00000000017a0876 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.BaseRealm.<init>+186) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 00000000017a07a0 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.BaseRealm.<init>+8) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 00000000017b8ba8 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.Realm.<init>+24) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 00000000017b85d0 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.Realm.createInstance+4) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5e53 /system/lib/libart.so (MterpInvokeStatic+130) #00 pc 0000000000414694 /system/lib/libart.so (ExecuteMterpImpl+14612) #00 pc 00000000017b06a0 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.RealmCache.createInstance+8) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 00000000017b029e /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.RealmCache.doCreateRealmOrGetFromCache+142) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 00000000017b01ca /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.RealmCache.createRealmOrGetFromCache+22) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0cdb /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82) #00 pc 00000000003e870b /system/lib/libart.so (artQuickToInterpreterBridge+882) #00 pc 0000000000425cff /system/lib/libart.so (art_quick_to_interpreter_bridge+30) #00 pc 0000000000421775 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #00 pc 00000000003fa2cb /system/lib/libart.so (art_quick_invoke_static_stub+222) #00 pc 00000000000a181f /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+154) #00 pc 00000000001ecedb /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+230) #00 pc 00000000001e7b55 /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+784) #00 pc 00000000003f5e53 /system/lib/libart.so (MterpInvokeStatic+130) #00 pc 0000000000414694 /system/lib/libart.so (ExecuteMterpImpl+14612) #00 pc 00000000017b8670 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.realm.Realm.getDefaultInstance+56) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5e53 /system/lib/libart.so (MterpInvokeStatic+130) #00 pc 0000000000414694 /system/lib/libart.so (ExecuteMterpImpl+14612) #00 pc 0000000000c12a36 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (com.kiwi.android.core.helper.RealmHelper.lambda$initializeRealm$41+114) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5d09 /system/lib/libart.so (MterpInvokeDirect+196) #00 pc 0000000000414614 /system/lib/libart.so (ExecuteMterpImpl+14484) #00 pc 0000000000c11a1c /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (com.kiwi.android.core.helper.RealmHelper.$r8$lambda$e3serIYjhnuTGWYQuBMo9WlLyfs) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5e53 /system/lib/libart.so (MterpInvokeStatic+130) #00 pc 0000000000414694 /system/lib/libart.so (ExecuteMterpImpl+14612) #00 pc 0000000000c0f2a4 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (com.kiwi.android.core.helper.RealmHelper$$ExternalSyntheticLambda0.run+4) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5a41 /system/lib/libart.so (MterpInvokeInterface+1024) #00 pc 0000000000414714 /system/lib/libart.so (ExecuteMterpImpl+14740) #00 pc 000000000177ee06 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.reactivex.internal.operators.completable.CompletableFromAction.subscribeActual+18) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f72cb /system/lib/libart.so (MterpInvokeVirtualQuick+434) #00 pc 0000000000418294 /system/lib/libart.so (ExecuteMterpImpl+29972) #00 pc 0000000001777e50 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.reactivex.Completable.subscribe+28) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5a41 /system/lib/libart.so (MterpInvokeInterface+1024) #00 pc 0000000000414714 /system/lib/libart.so (ExecuteMterpImpl+14740) #00 pc 000000000177f920 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run+4) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5a41 /system/lib/libart.so (MterpInvokeInterface+1024) #00 pc 0000000000414714 /system/lib/libart.so (ExecuteMterpImpl+14740) #00 pc 000000000177a87a /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.reactivex.Scheduler$DisposeTask.run+18) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f5a41 /system/lib/libart.so (MterpInvokeInterface+1024) #00 pc 0000000000414714 /system/lib/libart.so (ExecuteMterpImpl+14740) #00 pc 00000000017972ba /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.reactivex.internal.schedulers.ScheduledRunnable.run+26) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0d8f /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+146) #00 pc 00000000001e7b3f /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+762) #00 pc 00000000003f72cb /system/lib/libart.so (MterpInvokeVirtualQuick+434) #00 pc 0000000000418294 /system/lib/libart.so (ExecuteMterpImpl+29972) #00 pc 0000000001797168 /data/app/com.skypicker.main-y8vT61QA-zre8gmzfHFYag==/oat/arm/base.vdex (io.reactivex.internal.schedulers.ScheduledRunnable.call) #00 pc 00000000001cc457 /system/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.3747957748)+354) #00 pc 00000000001d0cdb /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+82) #00 pc 00000000003e870b /system/lib/libart.so (artQuickToInterpreterBridge+882) #00 pc 0000000000425cff /system/lib/libart.so (art_quick_to_interpreter_bridge+30) #00 pc 00000000002ff141 /system/framework/arm/boot.oat (offset 0x10d000) (java.util.concurrent.FutureTask.run+208) #00 pc 000000000039525f /system/framework/arm/boot.oat (offset 0x10d000) (java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run+118) #00 pc 0000000000356461 /system/framework/arm/boot.oat (offset 0x10d000) (java.util.concurrent.ThreadPoolExecutor.runWorker+1048) #00 pc 0000000000353a1f /system/framework/arm/boot.oat (offset 0x10d000) (java.util.concurrent.ThreadPoolExecutor$Worker.run+54) #00 pc 0000000000218059 /system/framework/arm/boot.oat (offset 0x10d000) (java.lang.Thread.run+64) #00 pc 0000000000421775 /system/lib/libart.so (art_quick_invoke_stub_internal+68) #00 pc 00000000003fa1c9 /system/lib/libart.so (art_quick_invoke_stub+224) #00 pc 00000000000a180d /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+136) #00 pc 0000000000358791 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+52) #00 pc 0000000000359525 /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+316) #00 pc 000000000037b731 /system/lib/libart.so (art::Thread::CreateCallback(void*)+900) #00 pc 0000000000065a5b /system/lib/libc.so (__pthread_start(void*)+154) #00 pc 000000000001e4fd /system/lib/libc.so (__start_thread+32)
Steps & Code to Reproduce
We can not reproduce it locally, but we got hundreds of reports in play console. It is occurring during a migration to the newest version for some users, usually leading to hundred or thousands of crashes like this per user.
Place and other classes in example are written in java and contain reference to Airport/Station and vice versa.
public class Airport extends RealmObject {
@PrimaryKey
private String id;
@Nullable
private Place place;
// other stuff
}
public class Place extends RealmObject {
@PrimaryKey
private String id;
private Airport airport;
private Station station;
// ....
// other stuff
}
All this is probably not enough to reproduce, as we’re unable to do so locally, but I hope that you’ll have some insights or it can help in other investigations.
Version of Realm and tooling
Realm version(s): realm-gradle-plugin 10.6.1
Realm Sync feature enabled: No
Android Studio version: Arctic Fox, 2020.3.1
Gradle version: 7.0.2
Build tools: 7.0.0
Which Android version and device(s): all API versions ( 23+ ) and various devices
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 21 (6 by maintainers)
@bmunkholm Nope, we weren’t able to repro it ourselves, in fact we disabled the migration in production.
In a version that started crashing we have not upgraded the realm plugin version. We have introduced a rather big migration, that removes all stored places from realm(). The migration itself is the trigger of these reports, version remained the same, 10.6.1.
But I’m gonna me check the history of ndk crashes, whether something like this was not present even before.
Hi @shanio Our core team is looking at this now.
The error here: https://github.com/realm/realm-java/issues/7553#issuecomment-906548052 should be unrelated to this one https://github.com/realm/realm-java/issues/7553#issuecomment-908572166
Do you by any chance have access to any of the Realm files that are crashing this way?