We are using L4T 32.4.2 which should correspond to JetPack 4.4 Developer Preview.
We tried to call the method Buffer* Argus::IBufferOutputStream::acquireBuffer with the camera sensors turned off in order to emulate the setup with the IMX camera sensors used in the precise triggering mode that are not sending any frames yet. Even though we used Argus::TIMEOUT_INFINITE as the first argument of acquireBuffer method, we ended up with our recorder application crashing after 1.22 second due to the waitCsiFrameEnd timeout:
1970-01-01T00:00:42.603304+0000 buildroot recorder[620]: cameras.cpp:886:wait_for_sync_pulse(): 2: calling acquireBuffer
1970-01-01T00:00:42.603304+0000 buildroot recorder[620]: cameras.cpp:91:get_sensor_modes(): sensor modes count 2
1970-01-01T00:00:42.603472+0000 buildroot recorder[620]: cameras.cpp:1401:start_capture(): Starting repeat capture requests.
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: Error: waitCsiFrameEnd timeout guid 1
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI Stream Id = 2 Virtual Channel = 0
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: **VI Debug Registers
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_CSIMUX_STAT_FRAME_8 = 0x0000001b
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_CSIMUX_FRAME_STATUS_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_CFG_INTERRUPT_STATUS_0 = 0x3f000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_ISPBUFA_ERROR_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_FMLITE_ERROR_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_NOTIFY_ERROR_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: CSI Stream Id = 2 Brick Id = 1
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: **CSI Debug Registers
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: CILA_INTR_STATUS_CILA[0x20400] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: CILB_INTR_STATUS_CILB[0x20c00] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: INTR_STATUS[0x200a4] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERR_INTR_STATUS[0x200ac] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC0[0x20094] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC1[0x20098] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC2[0x2009c] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC3[0x200a0] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameEnd(), line 711)
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: SCF: Error BadValue: Worker thread ViCsiHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 133)
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: Error: waitCsiFrameStart timeout guid 1
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI Stream Id = 2 Virtual Channel = 0
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: **VI Debug Registers
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_CSIMUX_STAT_FRAME_8 = 0x0000001b
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_CSIMUX_FRAME_STATUS_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_CFG_INTERRUPT_STATUS_0 = 0x3f000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_ISPBUFA_ERROR_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_FMLITE_ERROR_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: VI_NOTIFY_ERROR_0 = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: CSI Stream Id = 2 Brick Id = 1
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: **CSI Debug Registers
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: CILA_INTR_STATUS_CILA[0x20400] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: CILB_INTR_STATUS_CILB[0x20c00] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: INTR_STATUS[0x200a4] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERR_INTR_STATUS[0x200ac] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC0[0x20094] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC1[0x20098] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC2[0x2009c] = 0x00000000
1970-01-01T00:00:43.822212+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC3[0x200a0] = 0x00000000
1970-01-01T00:00:43.824120+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:43.824120+0000 buildroot recorder[620]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameStart(), line 624)
1970-01-01T00:00:43.824120+0000 buildroot recorder[620]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
1970-01-01T00:00:43.824120+0000 buildroot recorder[620]: SCF: Error BadValue: Worker thread ViCsiHw frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: Error: waitCsiFrameEnd timeout guid 0
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI Stream Id = 4 Virtual Channel = 0
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: **VI Debug Registers
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_CSIMUX_STAT_FRAME_16 = 0x00000012
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_CSIMUX_FRAME_STATUS_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_CFG_INTERRUPT_STATUS_0 = 0x3f000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_ISPBUFA_ERROR_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_FMLITE_ERROR_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_NOTIFY_ERROR_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: CSI Stream Id = 4 Brick Id = 2
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: **CSI Debug Registers
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: CILA_INTR_STATUS_CILA[0x30400] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: CILB_INTR_STATUS_CILB[0x30c00] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: INTR_STATUS[0x300a4] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERR_INTR_STATUS[0x300ac] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC0[0x30094] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC1[0x30098] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC2[0x3009c] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC3[0x300a0] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameEnd(), line 711)
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: SCF: Error BadValue: Worker thread ViCsiHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 133)
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: Error: waitCsiFrameStart timeout guid 0
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI Stream Id = 4 Virtual Channel = 0
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: **VI Debug Registers
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_CSIMUX_STAT_FRAME_16 = 0x00000012
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_CSIMUX_FRAME_STATUS_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_CFG_INTERRUPT_STATUS_0 = 0x3f000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_ISPBUFA_ERROR_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_FMLITE_ERROR_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: VI_NOTIFY_ERROR_0 = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: CSI Stream Id = 4 Brick Id = 2
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: **CSI Debug Registers
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: CILA_INTR_STATUS_CILA[0x30400] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: CILB_INTR_STATUS_CILB[0x30c00] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: INTR_STATUS[0x300a4] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERR_INTR_STATUS[0x300ac] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC0[0x30094] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC1[0x30098] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC2[0x3009c] = 0x00000000
1970-01-01T00:00:44.013425+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC3[0x300a0] = 0x00000000
1970-01-01T00:00:44.014753+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.014753+0000 buildroot recorder[620]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameStart(), line 624)
1970-01-01T00:00:44.014753+0000 buildroot recorder[620]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
1970-01-01T00:00:44.014753+0000 buildroot recorder[620]: SCF: Error BadValue: Worker thread ViCsiHw frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: Error: waitCsiFrameStart timeout guid 2
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI Stream Id = 0 Virtual Channel = 0
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: **VI Debug Registers
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_CSIMUX_STAT_FRAME_0 = 0x00000009
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_CSIMUX_FRAME_STATUS_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_CFG_INTERRUPT_STATUS_0 = 0x3f000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_ISPBUFA_ERROR_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_FMLITE_ERROR_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_NOTIFY_ERROR_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: CSI Stream Id = 0 Brick Id = 0
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: **CSI Debug Registers
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: CILA_INTR_STATUS_CILA[0x10400] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: CILB_INTR_STATUS_CILB[0x10c00] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: INTR_STATUS[0x100a4] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERR_INTR_STATUS[0x100ac] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC0[0x10094] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC1[0x10098] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC2[0x1009c] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC3[0x100a0] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameStart(), line 624)
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: SCF: Error BadValue: Worker thread ViCsiHw frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: Error: waitCsiFrameEnd timeout guid 2
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI Stream Id = 0 Virtual Channel = 0
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: **VI Debug Registers
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_CSIMUX_STAT_FRAME_0 = 0x00000009
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_CSIMUX_FRAME_STATUS_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_CFG_INTERRUPT_STATUS_0 = 0x3f000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_ISPBUFA_ERROR_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_FMLITE_ERROR_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: VI_NOTIFY_ERROR_0 = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: CSI Stream Id = 0 Brick Id = 0
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: **CSI Debug Registers
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: CILA_INTR_STATUS_CILA[0x10400] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: CILB_INTR_STATUS_CILB[0x10c00] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: INTR_STATUS[0x100a4] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERR_INTR_STATUS[0x100ac] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC0[0x10094] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC1[0x10098] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC2[0x1009c] = 0x00000000
1970-01-01T00:00:44.204891+0000 buildroot recorder[620]: ERROR_STATUS2VI_VC3[0x100a0] = 0x00000000
1970-01-01T00:00:44.206296+0000 buildroot recorder[620]: *****************************************
1970-01-01T00:00:44.206296+0000 buildroot recorder[620]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameEnd(), line 711)
1970-01-01T00:00:44.206296+0000 buildroot recorder[620]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
1970-01-01T00:00:44.206296+0000 buildroot recorder[620]: SCF: Error BadValue: Worker thread ViCsiHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 133)
The larger dmesg log (kernel log) corresponding to the system crash is attached. How can we overcome this issue and make the acquireBuffer method robust in the no-frame-present scenario?
dmesg_log.txt (115.9 KB)