Resurrecting this topic. We have two drones with identical hardware builds.
Only camera's plugged in are tracking cameras to J4.
Both are running the latest system image.
Drone 1's camera server never crashes while flying Indoors/outdoors.
Drone 2's camera server sometimes crashes and seems to be triggered by exposure changes when outside in bright environments. It is running a slightly newer version of voxl-camera-server.
The failing drone has this in the logs from logcat | grep "camera"
:
voxl:~$ logcat | grep camera
01-26 20:06:14.004 5732 5732 V HAL : loaded HAL id=camera path=/usr/lib/hw/camera.msm8996.so hmi=(nil) handle=0x64450
01-26 20:06:14.005 5732 5732 I QCamera : <MCI><INFO> get_num_of_cameras: 2767: dev_info[id=0,name='video2']
01-26 20:06:14.005 5732 5732 I QCamera : <MCI><INFO> sort_camera_info: 2611: Camera id: 0 facing: 1, type: 1 is_yuv: 0
01-26 20:06:14.005 5732 5732 I QCamera : <MCI><INFO> sort_camera_info: 2617: Number of cameras 1 sorted 1
01-26 20:06:14.005 5732 5732 I QCamera : <MCI><INFO> get_num_of_cameras: 2785: num_cameras=1
01-26 20:06:14.006 5732 5732 I QCamera : <HAL><INFO> QCamera2Factory: 142: 1 camera devices detected!
01-26 20:06:14.107 5732 5732 E QCamera : <HAL><ERROR> initStaticMetadata: 9846: static int qcamera::QCamera3HardwareInterface::initStaticMetadata(uint32_t)@9846: from gCamCapability QCAMERA3_EXP_TIME_RANGE= (19425, 1020461640)
01-26 20:06:14.107 5732 5732 E QCamera : <HAL><ERROR> initStaticMetadata: 9877: static int qcamera::QCamera3HardwareInterface::initStaticMetadata(uint32_t)@9877: cameraId 0 raw_dim[0].w 640 raw_dim[0].h 480
01-26 20:06:14.107 5732 5732 I QCamera : <HAL><INFO> getCamInfo: 10272: camera 0 resource cost is 100
01-26 20:06:14.107 5732 5732 I QCamera : <HAL><INFO> cameraDeviceOpen: 414: Open camera id 0 API version 768
01-26 20:06:14.117 5732 5732 I QCamera : <HAL><INFO> openCamera: 851: [KPI Perf]: E PROFILE_OPEN_CAMERA camera id 0
01-26 20:06:14.197 5732 5732 I QCamera : <HAL><INFO> openCamera: 861: [KPI Perf]: X PROFILE_OPEN_CAMERA camera id 0, rc: 0
01-26 20:06:14.197 5732 5732 E QCamera : <HAL><ERROR> initParameters: 8374: int qcamera::QCamera3HardwareInterface::initParameters()@8374 HAL params are initialized
01-26 20:07:55.283 5732 5789 E QCamera : <MCI><ERROR> mm_camera_event_notify: 192: Camera Event DAEMON DIED received
01-26 20:07:55.284 5732 5788 E QCamera : <HAL><ERROR> camEvtHandle: 803: Fatal, camera daemon died
journalctl
on the drone with crashed voxl-camera-server
shows:
Jan 01 00:00:52 apq8096 systemd[1]: Started voxl-camera-server.
Jan 26 20:01:17 apq8096 bash[2966]: ERROR: Recieved "Buffer" error from camera: tracking
Jan 26 20:01:23 apq8096 bash[2966]: ERROR: Recieved "Buffer" error from camera: tracking
Jan 26 20:01:24 apq8096 bash[2966]: ERROR: Recieved "Buffer" error from camera: tracking
Jan 26 20:01:35 apq8096 bash[2966]: ERROR: Recieved "Buffer" error from camera: tracking
Jan 26 20:01:37 apq8096 bash[2966]: ERROR: Recieved "Buffer" error from camera: tracking
Jan 26 20:01:42 apq8096 bash[2966]: ERROR: Recieved Fatal error from camera: tracking
Jan 26 20:01:42 apq8096 bash[2966]: ERROR: Sending request 7188, ErrorCode: -ENODEV
Jan 26 20:01:42 apq8096 bash[2966]: WARNING: Thread: tracking request thread recieved ESTOP
Jan 26 20:01:42 apq8096 bash[2966]: WARNING: Thread: tracking result thread recieved ESTOP
Jan 26 20:01:42 apq8096 bash[2966]: ------ voxl-camera-server INFO: Camera server is now stopping
Jan 26 20:01:42 apq8096 bash[2966]: WARNING: Deleting buffers: 24 of 32 still in use
Jan 26 20:01:42 apq8096 bash[2966]: Segmentation fault:
Jan 26 20:01:42 apq8096 bash[2966]: Fault thread: voxl-camera-ser(tid: 2966)
Jan 26 20:01:42 apq8096 bash[2966]: Fault address: 0x8
Jan 26 20:01:42 apq8096 bash[2966]: Address not mapped.
Jan 26 20:01:43 apq8096 systemd[1]: [[1;39mvoxl-camera-server.service: Main process exited, code=killed, status=11/SEGV[[0m
Jan 26 20:01:43 apq8096 systemd[1]: [[1;39mvoxl-camera-server.service: Unit entered failed state.[[0m
Jan 26 20:01:43 apq8096 systemd[1]: [[1;39mvoxl-camera-server.service: Failed with result 'signal'.[[0m
They have not been crashed... and the failure happens regularly when in bright environments. I matched up software versions as well and the crash still happens, so it has to be some kind of hardware issue and the below can be disregarded.
Hardware problems again with expansion or something weird in this specific camera/cable?
Drone 1 package versions (a bit older/stable repo):
libvoxl-cci-direct - 0.1.5
libvoxl-cutils - 0.1.1
voxl-camera-calibration - 0.2.3
voxl-camera-server - 1.3.5
voxl-cpu-monitor - 0.3.0
voxl-docker-support - 1.2.4
voxl-gphoto2-server - 0.0.10
voxl-jpeg-turbo - 2.1.3-4
voxl-libgphoto2 - 0.0.4
voxl-libuvc - 1.0.7
voxl-logger - 0.3.4
voxl-mavlink - 0.1.0
voxl-mavlink-server - 0.2.0
voxl-modem - 0.16.1
voxl-mongoose - 7.7.0-1
voxl-mpa-to-ros - 0.3.6
voxl-mpa-tools - 0.7.6
voxl-opencv - 4.5.5-1
voxl-portal - 0.4.2
voxl-qvio-server - 0.9.0
voxl-streamer - 0.4.1
voxl-suite - 0.9.4
voxl-system-image - 4.0-r0
voxl-tag-detector - 0.0.4
voxl-tflite-server - 0.3.1
voxl-utils - 1.2.2
voxl-uvc-server - 0.1.3
voxl-vision-px4 - 1.4.0
voxl-vpn - 0.0.6
Drone 2 package versions (a bit newer, dev repos):
libvoxl-cci-direct - 0.1.5
libvoxl-cutils - 0.1.1
voxl-camera-calibration - 0.3.0
voxl-camera-server - 1.3.7
voxl-cpu-monitor - 0.4.1
voxl-docker-support - 1.2.5
voxl-gphoto2-server - 0.0.10
voxl-jpeg-turbo - 2.1.3-4
voxl-lepton-server - 1.0.1
voxl-libgphoto2 - 0.0.4
voxl-libuvc - 1.0.7
voxl-logger - 0.3.4
voxl-mavlink - 0.1.0
voxl-mavlink-server - 0.2.0
voxl-modem - 0.16.2
voxl-mongoose - 7.7.0-1
voxl-mpa-to-ros - 0.3.6
voxl-mpa-tools - 0.8.4
voxl-opencv - 4.5.5-1
voxl-portal - 0.4.3
voxl-qvio-server - 0.9.0
voxl-streamer - 0.4.3
voxl-suite - 1.0.0
voxl-system-image - 4.0-r0
voxl-tag-detector - 0.0.4
voxl-tflite-server - 0.3.1
voxl-utils - 1.2.3
voxl-uvc-server - 0.1.3
voxl-vision-px4 - 1.4.1
voxl-vpn - 0.0.6