[ML KIT Crash] [libbarhopper_v3.so] Java_com_google_android_libraries_barhopper_BarhopperV3_recognizeBufferNative[Bug report] Title for the bug
Hi team,
We are facing crashes in our app. We are using ML KIT bundled version for barcode scanning. Please find the stack trace below :
backtrace: #00 pc 0x00000000000671d6 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/lib/arm/libbarhopper_v3.so #1 pc 0x00000000000533bb /data/app/-jg3MowrhOE2YU0q6pdKTeA==/lib/arm/libbarhopper_v3.so #2 pc 0x000000000004f121 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/lib/arm/libbarhopper_v3.so #3 pc 0x000000000004ef41 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/lib/arm/libbarhopper_v3.so #4 pc 0x000000000004f31f /data/app/-jg3MowrhOE2YU0q6pdKTeA==/lib/arm/libbarhopper_v3.so #5 pc 0x000000000004e0cd /data/app/-jg3MowrhOE2YU0q6pdKTeA==/lib/arm/libbarhopper_v3.so #6 pc 0x000000000004e12b /data/app/-jg3MowrhOE2YU0q6pdKTeA==/lib/arm/libbarhopper_v3.so (Java_com_google_android_libraries_barhopper_BarhopperV3_recognizeBufferNative+46) #7 pc 0x0000000000282c69 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.odex (art_jni_trampoline+152) #8 pc 0x00000000000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) #9 pc 0x000000000042e457 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250) #10 pc 0x00000000000dffb7 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+174) #11 pc 0x0000000000210a09 /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+280) #12 pc 0x000000000020d009 /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<true, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+524) #13 pc 0x0000000000427ee5 /apex/com.android.runtime/lib/libart.so (MterpInvokeDirectRange+240) #14 pc 0x00000000000d2c14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_direct_range+20) #15 pc 0x0000000001504a8c /data/app/jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (com.google.android.libraries.barhopper.BarhopperV3.b+26) #16 pc 0x0000000000428e43 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtualQuick+1118) #17 pc 0x00000000000d6594 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual_quick+20) #18 pc 0x0000000001afd474 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (nh.a.X3+44) #19 pc 0x0000000000428e43 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtualQuick+1118) #20 pc 0x00000000000d6594 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual_quick+20) #21 pc 0x00000000014ad152 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (com.google.android.gms.internal.mlkit_vision_barcode_bundled.s.V3+2398) #22 pc 0x0000000000428e43 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtualQuick+1118) #23 pc 0x00000000000d6594 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual_quick+20) #24 pc 0x00000000014a80c2 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (com.google.android.gms.internal.mlkit_vision_barcode_bundled.j.onTransact+40) #25 pc 0x00000000001ec285 /apex/com.android.runtime/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.4051875684531665263)+192) #26 pc 0x00000000001f0a69 /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+124) #27 pc 0x0000000000417fc9 /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+808) #28 pc 0x00000000000dc5a1 /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32) #29 pc 0x00000000016f6fab /system/framework/arm/boot-framework.oat (android.os.Binder.transact+114) #30 pc 0x00000000000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) #31 pc 0x000000000042e457 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250) #32 pc 0x00000000000dffb7 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+174) #33 pc 0x0000000000210a09 /apex/com.android.runtime/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+280) #34 pc 0x000000000020c34b /apex/com.android.runtime/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+774) #35 pc 0x0000000000424b61 /apex/com.android.runtime/lib/libart.so (MterpInvokeInterface+736) #36 pc 0x00000000000d2a14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_interface+20) #37 pc 0x00000000014936b0 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (com.google.android.gms.internal.mlkit_vision_barcode.a.W3+14) #38 pc 0x0000000000428e43 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtualQuick+1118) #39 pc 0x00000000000d6594 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual_quick+20) #40 pc 0x0000000001b0600a /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (qh.h.a+344) #41 pc 0x0000000000424e19 /apex/com.android.runtime/lib/libart.so (MterpInvokeInterface+1432) #42 pc 0x00000000000d2a14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_interface+20) #43 pc 0x0000000001b05b22 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (qh.e.b+30) #44 pc 0x0000000000428e43 /apex/com.android.runtime/lib/libart.so (MterpInvokeVirtualQuick+1118) #45 pc 0x00000000000d6594 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_virtual_quick+20) #46 pc 0x0000000001b1305e /data/app/jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (sh.e.call+116) #47 pc 0x0000000000424e19 /apex/com.android.runtime/lib/libart.so (MterpInvokeInterface+1432) #48 pc 0x00000000000d2a14 /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_interface+20) #49 pc 0x00000000019746ce /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.vdex (com.google.mlkit.common.sdkinternal.s.run+128) #50 pc 0x00000000001ec285 /apex/com.android.runtime/lib/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.4051875684531665263)+192) #51 pc 0x00000000001f0a69 /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+124) #52 pc 0x0000000000417fc9 /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+808) #53 pc 0x00000000000dc5a1 /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32) #54 pc 0x0000000000512c01 /data/app/-jg3MowrhOE2YU0q6pdKTeA==/oat/arm/base.odex (oc.b0.run+352) #55 pc 0x000000000085281f /system/framework/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+1014) #56 pc 0x000000000084f65f /system/framework/arm/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+54) #57 pc 0x0000000000433681 /system/framework/arm/boot.oat (java.lang.Thread.run+64) #58 pc 0x00000000000d7bc5 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) #59 pc 0x000000000042e457 /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+250) #60 pc 0x00000000000dffb7 /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+174) #61 pc 0x00000000003701f7 /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+54) #62 pc 0x0000000000370ee9 /apex/com.android.runtime/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+304) #63 pc 0x00000000003a19a7 /apex/com.android.runtime/lib/libart.so (art::Thread::CreateCallback(void*)+978) #64 pc 0x00000000000a6293 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20) #65 pc 0x0000000000060803 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)
Affected users 299K Last 28 days
Events 395K Last 28 days
Occurrence in 500 devices including Oneplus, oppo, vivo, samsung, realme, Motorola, Lava, Nokia etc. Android versions : All Happening mostly in background
Same error here.
Missing 32-bit .so . I have left a message under other issues, but body care.
I can reproduce the crash pretty consistently and quickly by mounting and unmounting at an interval a react-native-vision-camera instance that leverages a frame processor doing barcode detection on the fly, you can find a reproducible test case in this repository. Happy to help if it can make this bug goes forward.
@zhouyiself would it help with a full stack trace/tombstone?
I can reproduce it like @mgcrea did on react-native-vision-camera 3.9.2, but I can't reproduce it on 4.0.0. There is a big refactor on 4.0.0, and the bug just gone, without any specific hotfix. Unfortunately it's using camerax 1.4.0-alpha04 (camerax still doesn't have a 1.4.0 stable version). There is no hotfix for it on 3.9.2.
Maybe it can help someone else.