Repository navigation
Application is crashing with SIGABRT signal from libobjectbox-jni.so on ANDROID 14 #1154
Description
Activity
Thanks for reporting. It looks like the crash trace is for ObjectBox 3.4.0. Does anyone of you have one for the latest 3.7.0 release?
It also looks like the crash is happening as part of creating a query. Can you share any code related to that?
Symbolized crash dump
********** Crash dump: ********** #00 0x00000000000599e4 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) #01 0x0000000000047c4c /apex/com.android.runtime/lib64/bionic/libc.so (scudo::die()+8) #02 0x0000000000048508 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::ScopedErrorReport::~ScopedErrorReport()+32) #03 0x00000000000489d8 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportInvalidChunkState(scudo::AllocatorAction, void*)+116) #04 0x000000000004a3c4 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::Allocator<scudo::AndroidConfig, &(scudo_malloc_postinit)>::deallocate(void*, scudo::Chunk::Origin, unsigned long, unsigned long)+308) #05 0x00000000000dbde8 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/lib/arm64/libobjectbox-jni.so (BuildId: 9ef14b6ce8e65b49f29b21c9558d9a3b1eb84f2e) std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*> > >::destroy(std::__ndk1::__tree_node<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, void*>*) /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:1830:9 #06 0x00000000000dbde8 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/lib/arm64/libobjectbox-jni.so (BuildId: 9ef14b6ce8e65b49f29b21c9558d9a3b1eb84f2e) std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*> > >::destroy(std::__ndk1::__tree_node<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, void*>*) /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:1830:9 #07 0x00000000000dbde8 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/lib/arm64/libobjectbox-jni.so (BuildId: 9ef14b6ce8e65b49f29b21c9558d9a3b1eb84f2e) std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*> > >::destroy(std::__ndk1::__tree_node<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, void*>*) /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:1830:9 #08 0x00000000000dbde8 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/lib/arm64/libobjectbox-jni.so (BuildId: 9ef14b6ce8e65b49f29b21c9558d9a3b1eb84f2e) std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*> > >::destroy(std::__ndk1::__tree_node<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, void*>*) /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:1830:9 #09 0x00000000000dbde8 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/lib/arm64/libobjectbox-jni.so (BuildId: 9ef14b6ce8e65b49f29b21c9558d9a3b1eb84f2e) std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*> > >::destroy(std::__ndk1::__tree_node<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, void*>*) /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:1830:9 #10 0x00000000000db530 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/lib/arm64/libobjectbox-jni.so (BuildId: 9ef14b6ce8e65b49f29b21c9558d9a3b1eb84f2e) std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*> > >::~__tree() /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/__tree:1821:3 std::__ndk1::map<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >, objectbox::Entity const*, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > >, std::__ndk1::allocator<std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const, objectbox::Entity const*> > >::~map() /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/map:1090:0 objectbox::Schema::~Schema() /builds/objectbox/objectbox/objectbox/.cxx/RelWithDebInfo/3f5ul3wu/arm64-v8a/../../../../src/main/cpp/schema/Schema.h:25:0 #11 0x000000000004ec04 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/lib/arm64/libobjectbox-jni.so (Java_io_objectbox_query_QueryBuilder_nativeCreate+712) (BuildId: 9ef14b6ce8e65b49f29b21c9558d9a3b1eb84f2e) std::__ndk1::__shared_count::__release_shared() /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:3415:9 std::__ndk1::__shared_weak_count::__release_shared() /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:3457:0 std::__ndk1::shared_ptr<objectbox::Schema>::~shared_ptr() /opt/android/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:4393:0 Java_io_objectbox_query_QueryBuilder_nativeCreate /builds/objectbox/objectbox/objectbox/.cxx/RelWithDebInfo/3f5ul3wu/arm64-v8a/../../../../src/main/cpp/jni/QueryBuilderJniBinding.cpp:46:0 #12 0x00000000002bb064 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (art_jni_trampoline+132) #13 0x0000000000b4aa20 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (io.objectbox.query.QueryBuilder.<init>+128) #14 0x0000000000b44178 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (io.objectbox.a.r+184) #15 0x0000000000ace8d0 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (com.tripactions.alpha.koin.modules.AppModuleKt$appModule$1$1.invoke+1552) #16 0x0000000000aced24 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (com.tripactions.alpha.koin.modules.AppModuleKt$appModule$1$1.invoke+132) #17 0x0000000000ae1cac /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (j50.c.a+796) #18 0x0000000000ae3a88 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (o50.a.b+744) #19 0x0000000000adea9c /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (f50.a.a+412) #20 0x00000000009f7290 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (com.navan.app.BaseApplication.onCreate+1792) #21 0x0000000000a21d38 /data/app/~~aVdzXVPfh-FWROU6WoUklA==/com.tripactions.alpha-a9a5zHAj4Pyll-_xOc1rxQ==/oat/arm64/base.odex (lp.o.onCreate+56) #22 0x000000000066f8c0 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.Instrumentation.callApplicationOnCreate+48) #23 0x0000000000751ba4 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.handleBindApplication+5940) #24 0x0000000000745d80 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread$H.handleMessage+8912) #25 0x00000000009e66f8 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Handler.dispatchMessage+168) #26 0x00000000009ea4fc /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+1036) #27 0x00000000009ea048 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+1112) #28 0x000000000075da6c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2316) #29 0x0000000000337480 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) #30 0x000000000038a568 /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1588) #31 0x0000000000389f24 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32) #32 0x00000000003206a8 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+120) #33 0x0000000000bf9f64 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+132) #34 0x0000000000c055cc /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3356) #35 0x0000000000337480 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640) #36 0x00000000004eaa3c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+728) #37 0x0000000000591e50 /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+156) #38 0x00000000000d9ab4 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+104) #39 0x00000000000e57c4 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+840) #40 0x000000000000252c /system/bin/app_process64 (main+1240) #41 0x0000000000052610 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+104)
Never mind, I managed to reproduce the crash! This occurs when creating a query fails, e.g. if the
BoxStoreis already closed. For example:boxStore.close() boxStore.boxFor(Note::class.java).query() // SIGABRT
In that case an exception should be thrown. However, due to a bug a crash occurs.
It appears the bug was introduced with 3.6.0, so it's odd that 3.4.0 is also affected.We are looking into this.
avarughese-tripactions commented
on Nov 6, 2023 AuthorMore actions@greenrobot-team This happened on both 3.4.0 and 3.7.0. Also, i am curious why this is manifesting on OS 14. We do have some code which was trying to access the object box before it was initialized but for that we see a exception being logged. Are you saying this crash is related to that
@avarughese-tripactions Yes. Typically ObjectBox has checks for that which throw an exception. But in the case of
.query()that check is currently faulty.As for why this happens more frequently on Android 14 I can't say. I was able to reproduce this on other platforms as well, so it shouldn't be the determining factor. Maybe in your case e.g. threading works differently on Android 14, making it more likely that the Query API is used on a closed store?
We have released
3.7.1which resolves the native crash, now an exception is thrown as expected.- addedmore info requiredFurther information is requestedFurther information is requested
on Nov 8, 2023 avarughese-tripactions commented
on Nov 20, 2023 AuthorMore actions@greenrobot-team We have released our app with the updated lib. Will share some info once i have more updates
- removedmore info requiredFurther information is requestedFurther information is requested
on Nov 21, 2023 - addedmore info requiredFurther information is requestedFurther information is requested
on Nov 21, 2023 avarughese-tripactions commented
on Nov 29, 2023 AuthorMore actionsI can confirm that we are not seeing the SIGABRT rather exceptions that are thrown due to access of the boxstore in closed state. We are fixing those as per the info in the stacktrace
Reacted by Markus Junginger and Uwe (ObjectBox)- removedmore info requiredFurther information is requestedFurther information is requested
on Nov 30, 2023 @avarughese-tripactions Thanks! Closing this then.
Build info
Steps to reproduce
Seeing this issue on our production app. Based on our breadcrumb info we can conclude that this seems to be happening right at the app startup.
All the crashes are happening on google pixel devices having OS 14.
Expected behavior
App shouldn't crash
Actual behavior
The app is crashing at startup.
Logs, stack traces
Logs