Пустая ссылка, используемая для синхронизации - PullRequest
1 голос
/ 19 июня 2020

Когда я оставляю приложение Android работать примерно на 30 минут, оно иногда дает сбой. Затем я открываю системные журналы и нахожу, где происходит эта ошибка sh (я не могу отлаживать это приложение другим способом из-за особых обстоятельств). Обычно, когда в моем коде есть явная ошибка, этот журнал содержит трассировку стека. Однако эта спецификация c cra sh не оставляет следов стека. Тем не менее, он оставляет следующую информацию:

06-19 14:13:08.738  2216 18026 F libc    : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 18026 (Thread-1214), pid 2216 (s.flironecamera)
06-19 14:13:08.739  4697 16938 D MotionRecognitionService: values = 50.0
06-19 14:13:08.739  4697 16938 D MotionRecognitionService: onReceive lux: 50.0  action: 
06-19 14:13:08.740  4697 16938 D MotionRecognitionService: Inject brightness form Cam 50.0
06-19 14:13:08.740  4697 16938 D MotionRecognitionService: Inject calibrated lux
06-19 14:13:08.741  4169  4169 I Sensors : AutoBrightnessSensor::inject_sensor_data: cam_lux 50
06-19 14:13:08.854 18054 18054 E crash_dump64: unknown process state: t
06-19 14:13:08.916 18054 18054 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
06-19 14:13:08.926  4292  4292 I /system/bin/tombstoned: received crash request for pid 18026
06-19 14:13:08.929 18054 18054 I crash_dump64: performing dump of process 2216 (target tid = 18026)
06-19 14:13:08.941  4697 16938 D MotionRecognitionService: values = 50.0
06-19 14:13:08.942  4697 16938 D MotionRecognitionService: onReceive lux: 50.0  action: 
06-19 14:13:08.942  4697 16938 D MotionRecognitionService: Inject brightness form Cam 50.0
06-19 14:13:08.942  4697 16938 D MotionRecognitionService: Inject calibrated lux
06-19 14:13:08.945  4169  4431 I Sensors : AutoBrightnessSensor::inject_sensor_data: cam_lux 50
06-19 14:13:08.947 18054 18054 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-19 14:13:08.947 18054 18054 F DEBUG   : Build fingerprint: [redacted]
06-19 14:13:08.947 18054 18054 F DEBUG   : Revision: '10'
06-19 14:13:08.948 18054 18054 F DEBUG   : ABI: 'arm64'
06-19 14:13:08.949 18054 18054 F DEBUG   : Timestamp: 2020-06-19 14:13:08-0300
06-19 14:13:08.949 18054 18054 F DEBUG   : pid: 2216, tid: 18026, name: Thread-1214  >>> com.samples.flironecamera <<<
06-19 14:13:08.949 18054 18054 F DEBUG   : uid: 10269
06-19 14:13:08.949 18054 18054 F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
06-19 14:13:08.949 18054 18054 F DEBUG   : Abort message: 'terminating with uncaught exception of type jni::JavaException: java.lang.NullPointerException Null reference used for synchronization (monitor-enter)'
06-19 14:13:08.949 18054 18054 F DEBUG   :     x0  0000000000000000  x1  000000000000466a  x2  0000000000000006  x3  0000007e3b2d4380
06-19 14:13:08.949 18054 18054 F DEBUG   :     x4  feff287164736d64  x5  feff287164736d64  x6  feff287164736d64  x7  7f7f7f7f7f7f7f7f
06-19 14:13:08.949 18054 18054 F DEBUG   :     x8  00000000000000f0  x9  5e1c42c9d736fe8b  x10 0000000000000001  x11 0000000000000000
06-19 14:13:08.949 18054 18054 F DEBUG   :     x12 fffffff0fffffbdf  x13 28206e6f6974617a  x14 0000000000000004  x15 0000007ed145d412
06-19 14:13:08.949 18054 18054 F DEBUG   :     x16 0000007ed14638c0  x17 0000007ed1440920  x18 00000000000036b4  x19 00000000000008a8
06-19 14:13:08.949 18054 18054 F DEBUG   :     x20 000000000000466a  x21 00000000ffffffff  x22 ffffff80ffffffc8  x23 0000007e3b2d45d0
06-19 14:13:08.949 18054 18054 F DEBUG   :     x24 0000007e3b2d44b0  x25 0000007e3b2d44f0  x26 000000000000001e  x27 0000007de0eeeb80
06-19 14:13:08.949 18054 18054 F DEBUG   :     x28 0000007de0eeeb98  x29 0000007e3b2d4420
06-19 14:13:08.949 18054 18054 F DEBUG   :     sp  0000007e3b2d4360  lr  0000007ed13f5108  pc  0000007ed13f5134
06-19 14:13:08.962 18054 18054 F DEBUG   : 
06-19 14:13:08.962 18054 18054 F DEBUG   : backtrace:
06-19 14:13:08.962 18054 18054 F DEBUG   :       #00 pc 0000000000083134  /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) (BuildId: ecce0f8f6d05a6808531d834fd5e2b07)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #01 pc 00000000000a48c8  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libc++_shared.so (offset 0x1bb000) (BuildId: b062ae10a54d94f888c84c4f3bba0a8b30363bd7)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #02 pc 00000000000a4ac8  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libc++_shared.so (offset 0x1bb000) (BuildId: b062ae10a54d94f888c84c4f3bba0a8b30363bd7)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #03 pc 00000000000b92b8  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libc++_shared.so (offset 0x1bb000) (BuildId: b062ae10a54d94f888c84c4f3bba0a8b30363bd7)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #04 pc 00000000000b899c  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libc++_shared.so (offset 0x1bb000) (BuildId: b062ae10a54d94f888c84c4f3bba0a8b30363bd7)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #05 pc 00000000000b891c  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libc++_shared.so (offset 0x1bb000) (__cxa_throw+120) (BuildId: b062ae10a54d94f888c84c4f3bba0a8b30363bd7)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #06 pc 0000000000487638  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libatlas_native.so (offset 0x7cf000) (atlasCheckException(_JNIEnv*)+216) (BuildId: 70c0a8d0e08f60afb8dccd5e563b484d106e30a6)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #07 pc 00000000004c717c  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libatlas_native.so (offset 0x7cf000) (_Z10callMethodIvJEEN14wrapped_resultIT_E4typeEP7_JNIEnvP8_jobjectPKcDpOT0_+88) (BuildId: 70c0a8d0e08f60afb8dccd5e563b484d106e30a6)
06-19 14:13:08.962 18054 18054 F DEBUG   :       #08 pc 00000000004cc7b8  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libatlas_native.so (offset 0x7cf000) (jni::live::JavaConnector::startFrameStream(bool)+136) (BuildId: 70c0a8d0e08f60afb8dccd5e563b484d106e30a6)
06-19 14:13:08.963 18054 18054 F DEBUG   :       #09 pc 0000000000931d1c  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libatlas_native.so (offset 0x7cf000) (RBPDeviceWrapper::TransportCommunicatorImplementation::dispatchFrameStreamControlRequestToDelegates(bool) const+232) (BuildId: 70c0a8d0e08f60afb8dccd5e563b484d106e30a6)
06-19 14:13:08.963 18054 18054 F DEBUG   :       #10 pc 000000000093d374  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libatlas_native.so (offset 0x7cf000) (RBPDeviceWrapper::DeviceImplementation::handleFrameCaptureRequest(RBPDeviceWrapper::DeviceImplementation*, zmq::message_t const&, bool)+128) (BuildId: 70c0a8d0e08f60afb8dccd5e563b484d106e30a6)
06-19 14:13:08.963 18054 18054 F DEBUG   :       #11 pc 0000000000957d80  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libatlas_native.so (offset 0x7cf000) (RBPDeviceWrapper::ZMQSocketEventLoop<RBPDeviceWrapper::DeviceImplementation>::loopThreadBody(void*)+348) (BuildId: 70c0a8d0e08f60afb8dccd5e563b484d106e30a6)
06-19 14:13:08.963 18054 18054 F DEBUG   :       #12 pc 0000000000959c08  /data/app/com.samples.flironecamera-Ja8FY8rW-sZLXm5PKmpvqQ==/base.apk!libatlas_native.so (offset 0x7cf000) (_ZNSt6__ndk114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEPFPvS7_EPN16RBPDeviceWrapper18ZMQSocketEventLoopINSA_20DeviceImplementationEEEEEEEES7_S7_+44) (BuildId: 70c0a8d0e08f60afb8dccd5e563b484d106e30a6)
06-19 14:13:08.963 18054 18054 F DEBUG   :       #13 pc 00000000000e28c0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: ecce0f8f6d05a6808531d834fd5e2b07)
06-19 14:13:08.963 18054 18054 F DEBUG   :       #14 pc 000000000008503c  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: ecce0f8f6d05a6808531d834fd5e2b07)

Имя моего приложения - com.samples.flironecamera (это было временное имя, оно было создано на основе образца проекта), и оно использует Flir SDK. Есть ли способ узнать, в чем была конкретная причина c cra sh? Возможно ли, что эта ошибка sh вызвана самим SDK и не является ошибкой моего кода?

Я не публикую здесь свой код, потому что его около 10000 строк, и я не знаю, какие части актуальны. Если дамп ошибки указывает на использование определенного метода, оставьте комментарий, и я с удовольствием опубликую раздел своего кода, который использует что-либо, имеющее отношение к нему. Если это поможет, Я не использую инструкции assert или синхронизацию где-либо в любом из моих кодов .

...