Skip to content

Crash caused by libobjectbox-jni.so at __cxa_pure_virtual function #1131

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jobernolte opened this issue May 9, 2023 · 9 comments
Closed
Assignees
Labels
bug Something isn't working
Milestone

Comments

@jobernolte
Copy link

jobernolte commented May 9, 2023

Describe the bug
Some of our users experience crashes of our App caused by the ObjectBox library.

Basic info (please complete the following information):

  • ObjectBox version (are you using the latest version?): 3.5.1
  • Reproducibility: not reproducible
  • Device: see screenshots
  • OS: see screenshots

To Reproduce
not applicable

Expected behavior
The App should not crash ;)

Logs, stack traces

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 6340 >>> com.elogames.app <<<

backtrace:
  #00  pc 0x0000000000051ce8  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
  #01  pc 0x0000000000127bf4  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/split_config.arm64_v8a.apk!libobjectbox-jni.so
  #02  pc 0x0000000000125964  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/split_config.arm64_v8a.apk!libobjectbox-jni.so (__cxa_pure_virtual+16)
  #03  pc 0x0000000000055b74  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/split_config.arm64_v8a.apk!libobjectbox-jni.so (Java_io_objectbox_query_Query_nativeFind+2572)
  #04  pc 0x00000000005b3e44  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex (art_jni_trampoline+116)
  #05  pc 0x0000000001cf3fc0  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex (io.objectbox.query.Query.lambda$find$2$io-objectbox-query-Query+96)
  #06  pc 0x0000000001a7e610  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex ([DEDUPED]+64)
  #07  pc 0x0000000001ce6fe4  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex (io.objectbox.BoxStore.callInReadTx+260)
  #08  pc 0x0000000001ce7568  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex (io.objectbox.BoxStore.callInReadTxWithRetry+88)
  #09  pc 0x0000000001cf3730  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex (io.objectbox.query.Query.callInReadTx+96)
  #10  pc 0x0000000001cf3afc  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex (io.objectbox.query.Query.find+108)
  #11  pc 0x0000000001dc0fe4  /data/app/~~rKIIu3Zp3HgBxR0F8B-4qA==/com.elogames.app-GJkPoSM9UknmE-c_X-5ejg==/oat/arm64/base.odex (io.objectbox.query.QueryPublisher.run+468)
  #12  pc 0x000000000046abfc  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.Executors$RunnableAdapter.call+76)
  #13  pc 0x0000000000518a5c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.FutureTask.run+188)
  #14  pc 0x0000000000589960  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+976)
  #15  pc 0x0000000000586b48  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+72)
  #16  pc 0x00000000003ff840  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Thread.run+80)
  #17  pc 0x0000000000457b6c  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556)
  #18  pc 0x0000000000484e54  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156)
  #19  pc 0x0000000000484b20  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400)
  #20  pc 0x00000000005ce3a0  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1684)
  #21  pc 0x00000000000b67a8  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
  #22  pc 0x000000000005340c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

Screenshot 2023-05-09 113447

@jobernolte jobernolte added the bug Something isn't working label May 9, 2023
@greenrobot-team
Copy link
Member

greenrobot-team commented May 9, 2023

Thanks for reporting!

Relevant stack trace section:

/split_config.arm64_v8a.apk!libobjectbox-jni.so (Java_io_objectbox_query_Query_nativeFind+2572)
/oat/arm64/base.odex (art_jni_trampoline+116)
/oat/arm64/base.odex (io.objectbox.query.Query.lambda$find$2$io-objectbox-query-Query+96)
/oat/arm64/base.odex ([DEDUPED]+64)
/oat/arm64/base.odex (io.objectbox.BoxStore.callInReadTx+260)
/oat/arm64/base.odex (io.objectbox.BoxStore.callInReadTxWithRetry+88)
/oat/arm64/base.odex (io.objectbox.query.Query.callInReadTx+96)
/oat/arm64/base.odex (io.objectbox.query.Query.find+108)
/oat/arm64/base.odex (io.objectbox.query.QueryPublisher.run+468)

Is this project actually using version 2.5.1? I strongly recommend updating to the latest version which has received many fixes, including fixing a crash for queries.

Let me know if the issue persists after updating. This issue will auto-close in 2 weeks if there is no response.

@greenrobot-team greenrobot-team added the more info required Further information is requested label May 9, 2023
@jobernolte
Copy link
Author

Ah, sorry was a typo. We're using version 3.5.1.
grafik

@greenrobot-team
Copy link
Member

greenrobot-team commented May 10, 2023

@jobernolte Thanks! I've tried to run the tombstone through the ndk-stack tool, but without success. I guess the Play Developer Console does not give any additional info? As is, it is kind of hard to see why the crash occurred.

Based on the stack trace it looks like an exception from a query subscription. Does that help you pinpoint potential code locations?

A potential cause may be a query subscription that is not cleaned up properly before e.g. closing the store. Though this should typically trigger a Java exception, not a JVM crash.

Edit: a similar trace was reported at #1081 (comment).

This issue will auto-close in 2 weeks if there is no response.

@greenrobot-team greenrobot-team added more info required Further information is requested and removed more info required Further information is requested labels May 10, 2023
@jobernolte
Copy link
Author

jobernolte commented May 10, 2023

I'm using a generic ObjectBox database with two locations were I subscribe to a query.

        var timeout: Long = Long.MAX_VALUE
        box
            .query { notEqual(TheEntity_.expiresAt, Long.MAX_VALUE) }
            .subscribe()
            .toFlow()
            .mapNotNull { entities -> entities.minByOrNull { it.expiresAt } }
            .mapNotNull {
                val timeout2 = min(timeout, it.expiresAt)
                if (timeout2 < timeout) {
                    timeout = timeout2
                    timeout2
                } else {
                    null
                }
            }
            .transformLatest {
                val delayBy = (it - EloClock.currentTimeMillis()).milliseconds
                logger.debug(marker = marker) { "delay: $delayBy" }
                delay(delayBy)
                timeout = Long.MAX_VALUE
                coroutineScope.launch { evictExpiredEntries() }
                emit(it)
            }
            .launchIn(coroutineScope)

and

    fun <T : Any> stream(key: String, type: KType): Flow<T?> {
        return flow { emit(awaitInitialized()) }
            .flatMapLatest {
                val query = box
                    .query { equal(TheEntity_.key, key, QueryBuilder.StringOrder.CASE_SENSITIVE) }
                query
                    .subscribe()
                    .toFlow()
                    .onCompletion {
                        query.close()
                    }
            }
            .map { entities ->
                entities.firstOrNull { it.key == key }
            }
            .distinctUntilChanged()
            .map { entity ->
                entity
                    ?.takeIf { !entity.isExpired() }
                    ?.data(type)
            }
    }

Does this help?

@jobernolte
Copy link
Author

And there are other stack traces which I found in the Play Console:

pid: 0, tid: 5083 >>> com.elogames.app <<<

backtrace:
  #00  pc 0x000000000008cdd0  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
  #01  pc 0x0000000000127bf4  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/split_config.arm64_v8a.apk!libobjectbox-jni.so
  #02  pc 0x0000000000125964  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/split_config.arm64_v8a.apk!libobjectbox-jni.so (__cxa_pure_virtual+16)
  #03  pc 0x00000000000556f0  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/split_config.arm64_v8a.apk!libobjectbox-jni.so (Java_io_objectbox_query_Query_nativeFind+1416)
  #04  pc 0x000000000026a33c  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/oat/arm64/base.odex (art_jni_trampoline+156)
  #05  pc 0x0000000000134564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #06  pc 0x0000000000198e94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204)
  #07  pc 0x000000000030c254  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
  #08  pc 0x00000000003083dc  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+696)
  #09  pc 0x00000000006420f8  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualQuickRange+560)
  #10  pc 0x0000000000132614  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_range_quick+20)
  #11  pc 0x00000000034381ce  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/oat/arm64/base.vdex (io.objectbox.query.Query.lambda$find$2$io-objectbox-query-Query+22)
  #12  pc 0x00000000002fed48  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.10271544356895037650)+268)
  #13  pc 0x0000000000629a84  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+796)
  #14  pc 0x000000000013dff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
  #15  pc 0x00000000020cc2a8  /memfd:jit-cache (io.objectbox.BoxStore.callInReadTx+1272)
  #16  pc 0x0000000000134564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #17  pc 0x0000000000198e94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204)
  #18  pc 0x000000000030c254  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376)
  #19  pc 0x000000000030736c  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+884)
  #20  pc 0x0000000000641910  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualQuick+708)
  #21  pc 0x0000000000132594  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #22  pc 0x0000000003428e36  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/oat/arm64/base.vdex (io.objectbox.BoxStore.callInReadTxWithRetry+6)
  #23  pc 0x0000000000641b40  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualQuick+1268)
  #24  pc 0x0000000000132594  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #25  pc 0x00000000034380b8  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/oat/arm64/base.vdex (io.objectbox.query.Query.callInReadTx+20)
  #26  pc 0x0000000000641b40  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualQuick+1268)
  #27  pc 0x0000000000132594  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #28  pc 0x000000000343817c  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/oat/arm64/base.vdex (io.objectbox.query.Query.find+10)
  #29  pc 0x0000000000641b40  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtualQuick+1268)
  #30  pc 0x0000000000132594  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual_quick+20)
  #31  pc 0x0000000003437a6a  /data/app/~~nuen0lYFakOjiOMC7tAbNA==/com.elogames.app-hwsryBBFD0a2kzMfdqR86A==/oat/arm64/base.vdex (io.objectbox.query.QueryPublisher.run+102)
  #32  pc 0x00000000002fed48  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.10271544356895037650)+268)
  #33  pc 0x0000000000629a84  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+796)
  #34  pc 0x000000000013dff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)
  #35  pc 0x00000000001b6df4  /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.Executors$RunnableAdapter.call+68)
  #36  pc 0x0000000000243688  /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.FutureTask.run+200)
  #37  pc 0x00000000002a2d38  /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+984)
  #38  pc 0x000000000029ff30  /apex/com.android.art/javalib/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+64)
  #39  pc 0x000000000015ced8  /apex/com.android.art/javalib/arm64/boot.oat (java.lang.Thread.run+72)
  #40  pc 0x0000000000134564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
  #41  pc 0x0000000000198e94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204)
  #42  pc 0x0000000000532198  /apex/com.android.art/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
  #43  pc 0x0000000000533398  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+440)
  #44  pc 0x00000000005808b8  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1272)
  #45  pc 0x00000000000f40c4  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
  #46  pc 0x000000000008ed10  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

@jobernolte
Copy link
Author

pid: 0, tid: 17202 >>> com.elogames.app <<<

backtrace:
  #00  pc 0x000000000008abe8  /apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
  #01  pc 0x0000000000127bf4  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/split_config.arm64_v8a.apk!libobjectbox-jni.so
  #02  pc 0x0000000000125964  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/split_config.arm64_v8a.apk!libobjectbox-jni.so (__cxa_pure_virtual+16)
  #03  pc 0x0000000000055b74  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/split_config.arm64_v8a.apk!libobjectbox-jni.so (Java_io_objectbox_query_Query_nativeFind+2572)
  #04  pc 0x00000000001f6e44  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/oat/arm64/base.odex (art_jni_trampoline+116)
  #05  pc 0x000000000020b02c  /apex/com.android.art/lib64/libart.so (nterp_helper+7468)
  #06  pc 0x0000000000382476  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/base.apk (io.objectbox.query.Query.lambda$find$2$io-objectbox-query-Query+22)
  #07  pc 0x000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #08  pc 0x0000000000380464  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/base.apk (io.objectbox.query.Query$$ExternalSyntheticLambda4.call+4)
  #09  pc 0x000000000206c9bc  /memfd:jit-cache (io.objectbox.BoxStore.callInReadTx+396)
  #10  pc 0x000000000020a2b0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016)
  #11  pc 0x000000000036c40a  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/base.apk (io.objectbox.BoxStore.callInReadTxWithRetry+6)
  #12  pc 0x000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #13  pc 0x00000000003822ec  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/base.apk (io.objectbox.query.Query.callInReadTx+20)
  #14  pc 0x000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #15  pc 0x000000000038240a  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/base.apk (io.objectbox.query.Query.find+10)
  #16  pc 0x000000000020a254  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #17  pc 0x0000000000381a9e  /data/app/~~hctBFaHe3imT5yhfLQipuA==/com.elogames.app-JAhOe7p2iEyiaW446fJV3w==/base.apk (io.objectbox.query.QueryPublisher.run+102)
  #18  pc 0x0000000000469e6c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.Executors$RunnableAdapter.call+76)
  #19  pc 0x0000000000517ccc  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.FutureTask.run+188)
  #20  pc 0x0000000000588bd0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+976)
  #21  pc 0x0000000000585db8  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+72)
  #22  pc 0x00000000003feab0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (java.lang.Thread.run+80)
  #23  pc 0x0000000000457b6c  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556)
  #24  pc 0x0000000000484e54  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156)
  #25  pc 0x0000000000484b20  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+400)
  #26  pc 0x00000000005ce334  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1684)
  #27  pc 0x00000000000ef678  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
  #28  pc 0x000000000008c30c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

@jobernolte
Copy link
Author

And this one:

pid: 0, tid: 21344 >>> com.elogames.app <<<

backtrace:
  #00  pc 0x0000000000022988  /system/lib64/libc.so (abort+116)
  #01  pc 0x0000000000127bf4  /data/app/com.elogames.app-U2sg89rJF-LuVDLNcLZewA==/split_config.arm64_v8a.apk
  #02  pc 0x0000000000125964  /data/app/com.elogames.app-U2sg89rJF-LuVDLNcLZewA==/split_config.arm64_v8a.apk (__cxa_pure_virtual+16)
  #03  pc 0x0000000000055b74  /data/app/com.elogames.app-U2sg89rJF-LuVDLNcLZewA==/split_config.arm64_v8a.apk (Java_io_objectbox_query_Query_nativeFind+2572)
  #04  pc 0x00000000003897ac  /data/app/com.elogames.app-U2sg89rJF-LuVDLNcLZewA==/oat/arm64/base.odex (io.objectbox.query.Query.nativeFind [DEDUPED]+156)
  #05  pc 0x0000000000571d88  /system/lib64/libart.so (art_quick_invoke_stub+584)
  #06  pc 0x00000000000d4d2c  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
  #07  pc 0x000000000028810c  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
  #08  pc 0x0000000000283238  /system/lib64/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+748)
  #09  pc 0x0000000000544b60  /system/lib64/libart.so (MterpInvokeVirtualQuickRange+420)
  #10  pc 0x0000000000568194  /system/lib64/libart.so (ExecuteMterpImpl+30100)
  #11  pc 0x00000000034381c6  /data/app/com.elogames.app-U2sg89rJF-LuVDLNcLZewA==/oat/arm64/base.vdex (io.objectbox.query.Query.lambda$find$2$io-objectbox-query-Query+22)
  #12  pc 0x000000000025be18  /system/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool) (.llvm.883957294)+488)
  #13  pc 0x000000000052d7f0  /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
  #14  pc 0x000000000057aefc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
  #15  pc 0x000000000011e8d0  /dev/ashmem/dalvik-jit-code-cache

@github-actions github-actions bot removed the more info required Further information is requested label May 11, 2023
@greenrobot-team
Copy link
Member

These traces all appear to have this in common:

/apex/com.android.runtime/lib64/bionic/libc.so (abort+164)
/split_config.arm64_v8a.apk!libobjectbox-jni.so
/split_config.arm64_v8a.apk!libobjectbox-jni.so (__cxa_pure_virtual+16)
/split_config.arm64_v8a.apk!libobjectbox-jni.so (Java_io_objectbox_query_Query_nativeFind+2572)

__cxa_pure_virtual seems to be an error handler that is called if an implementation of a function is not found, a so called pure virtual function is called. In this case when calling nativeFind of the ObjectBox Android ARM 64-bit library.

We're looking at this internally on how this can happen.

@greenrobot-team greenrobot-team changed the title Crash caused by libobjectbox-jni.so Crash caused by libobjectbox-jni.so at __cxa_pure_virtual function Jul 10, 2023
@greenrobot-team greenrobot-team self-assigned this Jul 10, 2023
@greenrobot-team greenrobot-team added this to the 3.7.0 milestone Aug 23, 2023
@greenrobot-team
Copy link
Member

We have released version 3.7.0 where the __cxa_pure_virtual crash should not occur anymore.

If you get related exceptions, they should contain additional information to better diagnose this issue. Please let us know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants