vision-camera-resize-plugin icon indicating copy to clipboard operation
vision-camera-resize-plugin copied to clipboard

Android app crashes when camera is open for >10 minutes

Open caheinz2 opened this issue 1 year ago • 4 comments

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

caheinz2 avatar Aug 20 '24 20:08 caheinz2

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 avatar Aug 20 '24 21:08 mrousavy

@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 🫡

thomas-coldwell avatar Aug 21 '24 11:08 thomas-coldwell

Hey @thomas-coldwell, have you had a chance to investigate this issue yet? Any findings? I might be experiencing a similar problem.

pmirau avatar Aug 29 '24 12:08 pmirau

I am having this issue as well in iOS.

kuldip-simform avatar Dec 12 '24 04:12 kuldip-simform