Hi,
I’m experiencing stability issues with a 3-camera setup with a application using LibArgus on a Jetson AGX Orin. The application always start fine and we get a steady stream of captures from all three cameras. However, after a period of time (Could be anything between a few minutes to several hours) the framerate drops and eventually leads to no images being captured.
The nvargus-deamon
logs the following:
Dec 10 14:05:28 jetson nvargus-daemon[4351]: Module_id 30 Severity 2 : (fusa) Error: InvalidState propagating from:/capture/src/fusaViHandler.cpp 759
Dec 10 14:05:28 jetson nvargus-daemon[4351]: CAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing againSCF: Error InvalidState: Corr Error Received for sensor 2 .. Continuing!
Dec 10 14:05:28 jetson nvargus-daemon[4351]: (in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 643)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: Module_id 30 Severity 2 : (fusa) Error: ResourceAlreadyInUse All captures are already pending, no idle captures available in:/capture/src/fusaViHandler.cpp 633
Dec 10 14:05:28 jetson nvargus-daemon[4351]: Module_id 30 Severity 2 : (fusa) Error: ResourceAlreadyInUse propagating from:/capture/src/fusaViHandler.cpp 475
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: (propagating from src/services/capture/FusaCaptureViCsiHw.cpp, function startCaptureInternal(), line 866)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: (propagating from src/services/capture/CaptureRecord.cpp, function doCSItoMemCapture(), line 536)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: (propagating from src/services/capture/CaptureRecord.cpp, function issueCapture(), line 483)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1530)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueBubbleFillCapturesIfNeeded(), line 721)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1371)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: (propagating from src/common/Utils.cpp, function workerThread(), line 114)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error ResourceAlreadyInUse: Worker thread CaptureScheduler frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: Capture Scheduler not running (in src/services/capture/CaptureServiceDevice.cpp, function addNewItemToSchedule(), line 1004)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: (propagating from src/services/capture/CaptureService.cpp, function addRequest(), line 411)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: (propagating from src/components/stages/MemoryToISPCaptureStage.cpp, function doHandleRequest(), line 144)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 158)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: Capture Scheduler not running (in src/services/capture/CaptureServiceDevice.cpp, function addNewItemToSchedule(), line 1004)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: (propagating from src/services/capture/CaptureService.cpp, function addRequest(), line 411)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: Sending critical error event for Session 4
Dec 10 14:05:28 jetson nvargus-daemon[4351]: (in src/api/Session.cpp, function sendErrorEvent(), line 1039)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: (propagating from src/components/stages/MemoryToISPCaptureStage.cpp, function doHandleRequest(), line 144)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 158)
Dec 10 14:05:28 jetson nvargus-daemon[4351]: SCF: Error InvalidState: Sending critical error event for Session 0
Dec 10 14:05:28 jetson nvargus-daemon[4351]: (in src/api/Session.cpp, function sendErrorEvent(), line 1039)
Dec 10 14:05:33 jetson nvargus-daemon[4351]: (Argus) Error BadParameter: Vector index out of bounds (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamerautils/inc/Vector.h, function operator[](), line 365)
Dec 10 14:05:33 jetson nvargus-daemon[4351]: (Argus) Error BadParameter: Vector index out of bounds (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamerautils/inc/Vector.h, function operator[](), line 365)
Dec 10 14:05:33 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43949
Dec 10 14:05:33 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43950
Dec 10 14:05:33 jetson nvargus-daemon[4351]: SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 969)
Dec 10 14:05:33 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43949
Dec 10 14:05:33 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43950
Dec 10 14:05:33 jetson nvargus-daemon[4351]: SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 969)
Dec 10 14:05:37 jetson nvargus-daemon[4351]: === kcc[4357]: Connection closed (FFFF9521A900)=== kcc[4357]: WARNING: CameraProvider was not destroyed before client connection terminated.=== kcc[4357]: The client may have abnormally terminated. Destroying CameraProvider...=== kcc[4357]: CameraProvider destroyed (0xffff90873aa0)=== kcc[4357]: WARNING: Cleaning up 3 outstanding requests...=== kcc[4357]: WARNING: Cleaning up 3 outstanding stream settings...=== kcc[4357]: WARNING: Cleaning up 3 outstanding queues...=== kcc[4357]: WARNING: Cleaning up 3 outstanding sessions...SCF: Error Timeout: (propagating from src/services/capture/CaptureServiceEvent.cpp, function wait(), line 59)
Dec 10 14:05:37 jetson nvargus-daemon[4351]: Error: Camera HwEvents wait, this may indicate a hardware timeout occured,abort current/incoming cc for sensor guid 2 count -1739005184
Dec 10 14:05:38 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43949
Dec 10 14:05:38 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43950
Dec 10 14:05:38 jetson nvargus-daemon[4351]: SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 969)
Dec 10 14:05:38 jetson nvargus-daemon[4351]: SCF: Error InvalidState: 1 buffers still pending during EGLStreamProducer destruction (in src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 300)
Dec 10 14:05:43 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43949
Dec 10 14:05:43 jetson nvargus-daemon[4351]: waitForIdleLocked remaining request 43950
Dec 10 14:05:43 jetson nvargus-daemon[4351]: SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 969)
The only indication that something is wrong from the LibArgus API is that the FrameConsumer->acquireFrame()
returns STATUS_TIMEOUT
The application works again after restarting the nvargus-daemon
, but as before only for a while.
NOTE:
The application did work before, but after a changing the camera expansion board connecting the camera to the carrier board we started experiencing this issue. I’ve been talking both to the camera and carrier board manufacturers without any headway.
I’ve tried to boost the clocks:
echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
echo 1 > /sys/kernel/debug/bpmp/debug/clk/emc/mrq_rate_locked
cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
cat /sys/kernel/debug/bpmp/debug/clk/isp/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/isp/rate
cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
cat /sys/kernel/debug/bpmp/debug/clk/emc/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/emc/rate
Other info:
- We’re using Jetpack 5.1.2.
- We’re using a third-party connector board
- 2 Cameras are set as slave and 1 as master.
Any idea as to how I can resolve this issue ?
Thanks.