Android app crashes when camera is open for >10 minutes
Summary
The example app crashes on android devices after sitting idle for around 10 minutes. There seems to be a memory leak, most likely in react-native-vision-camera's SharedArray implementation.
More Details
I am working on a project that leverages this plugin to convert images in YUV format to RGB format. I've noticed that since introducing the plugin into my project, the app crashes on Android devices after running for about 10 minutes. This has happened across the board, on both Samsung Galaxy and Google Pixel devices. The error message that I've copied below mentions that the JNI global reference table is overflowing, and the vast majority of objects in the table are of class com.mrousavy.camera.frameprocessors.SharedArray.
I'm happy to open an issue in the react-native-vision-camera repo if needed. I chose to open it here because I first discovered the issue while using this plugin, and I'm also not sure if the react-native-vision-camera example app uses SharedArray objects out-of-the-box.
I'd also like to ask if I should be using this plugin to convert from YUV to RGB format, or if I should instead be using the RGB pixel format. Even if I should be using the pixel format property, this issue should probably stay open as I'm sure there are other use cases affected by a memory leak in the SharedArray class.
Log Snippet
ExynosCameraSec ven...re.camera.provider-service_64 E [CAM(0)][Back_0]-(m_handleInternalFrame[16059]):[CAM0][F16860 FT7 B3]Src buffer state is error for PIPE_3AA. ret 0
ExynosCameraSec ven...re.camera.provider-service_64 E [CAM(0)][Back_0]-(m_handleInternalFrame[16059]):[CAM0][F16861 FT7 B4]Src buffer state is error for PIPE_3AA. ret 0
ExynosCameraSec ven...re.camera.provider-service_64 E [CAM(0)][Back_0]-(m_handleInternalFrame[16059]):[CAM0][F16862 FT7 B5]Src buffer state is error for PIPE_3AA. ret 0
ExynosCameraSec ven...re.camera.provider-service_64 E [CAM(0)][Back_0]-(m_handleInternalFrame[16059]):[CAM0][F16863 FT7 B6]Src buffer state is error for PIPE_3AA. ret 0
DEBUG crash_dump64 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
DEBUG crash_dump64 A Build fingerprint: 'samsung/a14ub/a14:14/UP1A.231005.007/A145MUBS7CXG1:user/release-keys'
DEBUG crash_dump64 A Revision: '4'
DEBUG crash_dump64 A ABI: 'arm64'
DEBUG crash_dump64 A Processor: '5'
DEBUG crash_dump64 A Timestamp: 2024-08-20 14:11:26.680712739-0400
DEBUG crash_dump64 A Process uptime: 1001s
DEBUG crash_dump64 A Cmdline: com.visioncameraresizepluginexample
DEBUG crash_dump64 A pid: 8045, tid: 8297, name: ionCamera.video >>> com.visioncameraresizepluginexample <<<
DEBUG crash_dump64 A uid: 10455
DEBUG crash_dump64 A tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
DEBUG crash_dump64 A signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
DEBUG crash_dump64 A Abort message: 'JNI ERROR (app bug): global reference table overflow (max=51200)global reference table dump:
Last 10 entries (of 51199):
51198: 0x12fb8c88 java.nio.DirectByteBuffer
51197: 0x12fb8c88 java.nio.DirectByteBuffer
51196: 0x13f30f48 com.mrousavy.camera.frameprocessors.SharedArray
51195: 0x12fb8c88 java.nio.DirectByteBuffer
51194: 0x12fb8c88 java.nio.DirectByteBuffer
51193: 0x13f2fec8 com.mrousavy.camera.frameprocessors.SharedArray
51192: 0x13f306f8 com.mrousavy.camera.frameprocessors.Frame
51191: 0x12fb8c88 java.nio.DirectByteBuffer
51190: 0x12fb8c88 java.nio.DirectByteBuffer
51189: 0x13f2ee48 com.mrousavy.camera.frameprocessors.SharedArray
Summary:
33633 of java.nio.DirectByteBuffer (7 unique instances)
16813 of com.mrousavy.camera.frameprocessors.SharedArray (16813 unique instances)
430 of java.lang.Class (319 unique instances)
192 of com.mrousavy.camera.frameprocessors.Frame (192 unique instances)
39 of com.facebook.react.bridge.JavaModuleWrapper (39 unique instances)
14 of java.lang.ref.WeakReference (14 unique instances)
7 of android.view.ViewRootImpl$W (7 unique instances)
5 of com.facebook.react.bridge.ReadableType (5 unique instances)
3 of java.lang.String (2 unique instances)
3 of dalvik.system.PathClassLoader (2 unique instances)
2 of com.mrousavy.camera.frameprocessors.VisionCameraProxy (1 unique instances)
2 of com.visioncameraresizeplugin.ResizePlugin (1 unique instances)
2 of com.mrousavy.camera.frameprocessors.VisionCameraScheduler (1 unique instances)
2 of com.swmansion.reanimated.AndroidUIScheduler (1 unique instances)
2 of com.swmansion.reanimated.layoutReanimation.LayoutAnimations (1 unique instances)
2 of android.hardware.camera2.CameraManager$CameraManagerGlobal (1 unique instances)
2 of android.view.ThreadedRenderer$WebViewOverlayProvider (1 unique instances)
2 of android.view.ViewRootImpl$1 (1 unique instances)
2 of com.facebook.react.bridge.queue.MessageQueueThreadImpl (2 unique instances)
2 of android.content.ContentProvider$Transport (2 unique instances)
2 of android.window.WindowOnBackInvokedDispatcher$OnBackInvokedCallbackWrapper (2 unique instances)
2 of java.lang.ThreadGroup (2 unique instances)
2 of android.opengl.EGLContext (2 unique instances)
2 of android.opengl.EGLDisplay (2 unique instances)
2 of android.opengl.EGLSurface (2 unique instances)
1 of com.facebook.react.bridge.RuntimeScheduler
1 of com.facebook.react.bridge.RuntimeExecutor
1 of com.facebook.react.modules.blob.BlobModule
1 of com.facebook.react.bridge.Inspector
1 of com.facebook.react.bridge.CatalystInstanceImpl$BridgeCallback
1 of com.facebook.react.turbomodule.core.CallInvokerHolderImpl
1 of android.app.UiModeManager$Globals
1 of com.swmansion.reanimated.NativeProxy
1 of com.swmansion.reanimated.ReanimatedMessageQueueThread
1 of com.shopify.reactnative.skia.SkiaManager
1 of com.shopify.reactnative.skia.PlatformContext
1 of android.hardware.camera2.impl.CameraDeviceImpl$CameraDeviceCallbacks
1 of dalvik.system.VMRuntime
1 of android.app.ActivityThread$3
1 of android.app.ActivityThread$ApplicationThread
1 of android.app.LoadedApk$ReceiverDispatcher$InnerReceiver
1 of android.graphics.HardwareRenderer$ProcessInitializer$1
1 of android.hardware.devicestate.DeviceStateManagerGlobal$DeviceStateManagerCallback
1 of android.hardware.display.DisplayManagerGlobal$DisplayManagerCallback
1 of android.os.ResultReceiver$MyResultReceiver
1 of android.view.WindowManagerGlobal$1
1 of android.view.accessibility.AccessibilityManager$1
1 of android.view.inputmethod.InputMethodManager$2
1 of android.view.inputmethod.RemoteInputConnectionImpl
DEBUG crash_dump64 A 1 of int[] (16 elements)
1 of float[] (16 elements)
1 of java.nio.ByteOrder
1 of android.graphics.SurfaceTexture
1 of android.hardware.camera2.impl.CameraDeviceImpl
1 of android.os.PersistableBundle$1'
DEBUG crash_dump64 A x0 0000000000000000 x1 0000000000002069 x2 0000000000000006 x3 0000007787140bb0
DEBUG crash_dump64 A x4 636d601f656e1f30 x5 636d601f656e1f30 x6 636d601f656e1f30 x7 7f7f7f7f7f7f7f7f
DEBUG crash_dump64 A x8 00000000000000f0 x9 0000007837cb5ea8 x10 0000000000000001 x11 0000007837d2ee28
DEBUG crash_dump64 A x12 000000778713f900 x13 0000000000000000 x14 000000778713f9b0 x15 00000218ea1fd121
DEBUG crash_dump64 A x16 0000007837d969f0 x17 0000007837d70ce0 x18 0000007783420000 x19 0000000000001f6d
DEBUG crash_dump64 A x20 0000000000002069 x21 00000000ffffffff x22 000000000000000b x23 00000077925125a2
DEBUG crash_dump64 A x24 000000000000000b x25 000000779307c000 x26 b400007796091d20 x27 000000779307f000
DEBUG crash_dump64 A x28 0000007793080000 x29 0000007787140c30
DEBUG crash_dump64 A lr 0000007837d207bc sp 0000007787140b90 pc 0000007837d207e8 pst 0000000000000000
DEBUG crash_dump64 A 51 total frames
DEBUG crash_dump64 A backtrace:
DEBUG crash_dump64 A #00 pc 00000000000927e8 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: d76876b3a13375d4127ebc6e733dbb32)
DEBUG crash_dump64 A #01 pc 000000000076fd50 /apex/com.android.art/lib64/libart.so (art::Runtime::Abort(char const*)+904) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #02 pc 00000000000357d0 /apex/com.android.art/lib64/libbase.so (android::base::SetAborter(std::__1::function<void (char const*)>&&)::$_0::__invoke(char const*)+80) (BuildId: 6f67f69ff36b970d0b831cfdab3b578d)
DEBUG crash_dump64 A #03 pc 0000000000034d58 /apex/com.android.art/lib64/libbase.so (android::base::LogMessage::~LogMessage()+352) (BuildId: 6f67f69ff36b970d0b831cfdab3b578d)
DEBUG crash_dump64 A #04 pc 000000000029f27c /apex/com.android.art/lib64/libart.so (art::JavaVMExt::AddGlobalRef(art::Thread*, art::ObjPtr<art::mirror::Object>)+1912) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #05 pc 0000000000574a54 /apex/com.android.art/lib64/libart.so (art::JNI<true>::NewGlobalRef(_JNIEnv*, _jobject*)+164) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #06 pc 00000000005009e4 /apex/com.android.art/lib64/libart.so (art::(anonymous namespace)::CheckJNI::NewRef(char const*, _JNIEnv*, _jobject*, art::IndirectRefKind) (.__uniq.99033978352804627313491551960229047428)+232) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #07 pc 000000000003ca34 /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/lib/arm64/libVisionCamera.so (std::__ndk1::enable_if<IsNonWeakReference<facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> >(), facebook::jni::basic_strong_ref<facebook::jni::reference_traits<facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> >::plain_jni_reference_t, facebook::jni::GlobalReferenceAllocator> >::type facebook::jni::make_global<facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> >(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> const&)+60) (BuildId: d0e1c06aa9fb2a83cf3163469ecede6e65a23dc0)
DEBUG crash_dump64 A #08 pc 000000000003c9a4 /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/lib/arm64/libVisionCamera.so (vision::FrameHostObject::FrameHostObject(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> const&)+56) (BuildId: d0e1c06aa9fb2a83cf3163469ecede6e65a23dc0)
DEBUG crash_dump64 A #09 pc 0000000000051628 /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/lib/arm64/libVisionCamera.so (vision::JFrameProcessor::call(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>)+88) (BuildId: d0e1c06aa9fb2a83cf3163469ecede6e65a23dc0)
DEBUG crash_dump64 A #10 pc 0000000000053654 /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/lib/arm64/libVisionCamera.so (facebook::jni::detail::MethodWrapper<void (vision::JFrameProcessor::*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>), &(vision::JFrameProcessor::call(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>)), vision::JFrameProcessor, void, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> >::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>&&)+48) (BuildId: d0e1c06aa9fb2a83cf3163469ecede6e65a23dc0)
DEBUG crash_dump64 A #11 pc 0000000000053720 /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/lib/arm64/libVisionCamera.so (facebook::jni::detail::CallWithJniConversions<void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>&&), void, facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> >::call(facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*, facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*, void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>&&))+120) (BuildId: d0e1c06aa9fb2a83cf3163469ecede6e65a23dc0)
DEBUG crash_dump64 A #12 pc 00000000000535bc /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/lib/arm64/libVisionCamera.so (facebook::jni::detail::FunctionWrapper<void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>&&), facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*, void, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> >::call(_JNIEnv*, _jobject*, facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*, void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<vision::JFrameProcessor, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>&&))+68) (BuildId: d0e1c06aa9fb2a83cf3163469ecede6e65a23dc0)
DEBUG crash_dump64 A #13 pc 0000000000050c00 /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/lib/arm64/libVisionCamera.so (facebook::jni::detail::MethodWrapper<void (vision::JFrameProcessor::*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>), &(vision::JFrameProcessor::call(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*>)), vision::JFrameProcessor, void, facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*> >::call(_JNIEnv*, _jobject*, facebook::jni::detail::JTypeFor<vision::JFrame, facebook::jni::JObject, void>::_javaobject*)+36) (BuildId: d0e1c06aa9fb2a83cf3163469ecede6e65a23dc0)
DEBUG crash_dump64 A #14 pc 0000000000351230 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #15 pc 0000000002182f90 /memfd:jit-cache (deleted) (offset 0x2000000) (com.mrousavy.camera.react.CameraView.onFrame+224)
DEBUG crash_dump64 A #16 pc 0000000002108b2c /memfd:jit-cache (deleted) (offset 0x2000000) (com.mrousavy.camera.core.FrameProcessorPipeline.analyze+284)
DEBUG crash_dump64 A #17 pc 000000000033a7a4 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #18 pc 0000000000510a3c /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1976) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #19 pc 0000000000491368 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+4772) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #20 pc 00000000003539d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #21 pc 00000000001f99b4 [anon:dalvik-classes.dex extracted in memory from /data/app/~~zRDpSi3qq5a_Ld3iVNySJA==/com.visioncameraresizepluginexample-gkc1TPlp7Ruf5pW6kut0_Q==/base.apk] (androidx.camera.core.ImageAnalysis.lambda$setAnalyzer$2+0)
DEBUG crash_dump64 A #22 pc 000000000036daec /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.18012138979834229341)+232) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #23 pc 000000000036d3e4 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+964) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #24 pc 0000000000351368 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #25 pc 00000000021cad30 /memfd:jit-cache (deleted) (offset 0x2000000) (androidx.camera.core.ImageAnalysis$$ExternalSyntheticLambda2.analyze+96)
DEBUG crash_dump64 A #26 pc 0000000002079138 /memfd:jit-cache (deleted) (offset 0x2000000) (androidx.camera.core.ImageAnalysisAbstractAnalyzer.lambda$analyzeImage$0$androidx-camera-core-ImageAnalysisAbstractAnalyzer+680)
DEBUG crash_dump64 A #27 pc 0000000002153a3c /memfd:jit-cache (deleted) (offset 0x2000000) (androidx.camera.core.ImageAnalysisAbstractAnalyzer$$ExternalSyntheticLambda1.run+188)
DEBUG crash_dump64 A #28 pc 00000000021bd234 /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.Handler.handleCallback+84)
DEBUG crash_dump64 A #29 pc 00000000021b6a10 /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.Handler.dispatchMessage+80)
DEBUG crash_dump64 A #30 pc 00000000021b5b08 /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.Looper.loopOnce+1048)
DEBUG crash_dump64 A #31 pc 0000000002101518 /memfd:jit-cache (deleted) (offset 0x2000000) (android.os.Looper.loop+520)
DEBUG crash_dump64 A #32 pc 000000000033ab10 /apex/com.android.art/lib64/libart.so (art_quick_osr_stub+64) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #33 pc 000000000032d844 /apex/com.android.art/lib64/libart.so (art::jit::Jit::MaybeDoOnStackReplacement(art::Thread*, art::ArtMethod*, unsigned int, int, art::JValue*)+2280) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #34 pc 0000000000490b08 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+2628) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #35 pc 00000000003539d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #36 pc 000000000023950c /system/framework/framework.jar (android.os.Looper.loop+0)
DEBUG crash_dump64 A #37 pc 000000000036daec /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.18012138979834229341)+232) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #38 pc 0000000000511708 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+5252) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #39 pc 0000000000490828 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+1892) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #40 pc 00000000003539d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #41 pc 0000000000203fbc /system/framework/framework.jar (android.os.HandlerThread.run+0)
DEBUG crash_dump64 A #42 pc 000000000036daec /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.18012138979834229341)+232) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #43 pc 000000000036d3e4 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+964) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #44 pc 0000000000351368 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #45 pc 000000000033a7a4 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #46 pc 000000000023a01c /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+144) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #47 pc 0000000000539108 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1600) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #48 pc 0000000000538ab8 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallbackWithUffdGc(void*)+8) (BuildId: 2452917c4ff69cbb6e75e5512260946b)
DEBUG crash_dump64 A #49 pc 00000000000f74f8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: d76876b3a13375d4127ebc6e733dbb32)
DEBUG crash_dump64 A #50 pc 0000000000094020 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: d76876b3a13375d4127ebc6e733dbb32)
ExynosCameraSec ven...re.camera.provider-service_64 E [CAM(0)][Back_0]-(m_handleInternalFrame[16059]):[CAM0][F16864 FT7 B7]Src buffer state is error for PIPE_3AA. ret 0
ExynosCameraSec ven...re.camera.provider-service_64 E [CAM(0)][Back_0]-(m_handleInternalFrame[16059]):[CAM0][F16865 FT7 B0]Src buffer state is error for PIPE_3AA. ret 0
tombstoned tombstoned E Tombstone written to: tombstone_12
Thanks for the details, this definitely sounds like a memory leak in SharedArray.
At the moment I don't have any time to investigate, so I think I'd put a $300 bounty on this issue.
@mrousavy I can investigate this as part of the work I'm currently doing here too - I saw some crashes on my end after leaving stuff running for a while so can debug this a bit 🫡
Hey @thomas-coldwell, have you had a chance to investigate this issue yet? Any findings? I might be experiencing a similar problem.
I am having this issue as well in iOS.