-
Type: Bug
-
Resolution: Gone away
-
Priority: Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: None
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