Hello,
I am experiencing an odd issue with nvarguscamera. I am using an NVIDIA AGX Xavier devkit with JP4.5.1.
I am capturing from multiple sensors (IMX415) at 4K resolution. The capture goes great. I can capture from 4 cameras 4k@60fps with no issues at all. However, when I kill (ctrl+c) the pipeline, nvargus-daemon crashes with the following error:
NvCaptureStatusErrorDecode Stream 2.0 failed: sof_ts 6353057060736 eof_ts 6353066758976 frame 173 error 0 data 0x00000000
NvCaptureStatusErrorDecode Capture-Error: UNKNOWN (0x00000000)
(NvCapture) Error InvalidState: Channel is in error state, reset required (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureRequestGetAttribute(), line 1870)
SCF: Error InvalidState: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 913)
SCF: Error InvalidState: Capture error with status 0 (channel 0) (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 922)
SCF: Error InvalidState: Sequence order error (124 received, 0 expected, channel 0) (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 929)
(NvCapture) Error InvalidState: Channel in error state, reset required (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureReleaseRequest(), line 649)
SCF: Error InvalidState: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 940)
SCF: Error InvalidState: Sending critical error event (in src/api/Session.cpp, function sendErrorEvent(), line 992)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 983)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 983)
NvCaptureStatusErrorDecode Stream 0.0 failed: sof_ts 6353063370112 eof_ts 6353066758976 frame 150 error 0 data 0x00000000
NvCaptureStatusErrorDecode Capture-Error: UNKNOWN (0x00000000)
(NvCapture) Error InvalidState: Channel is in error state, reset required (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureRequestGetAttribute(), line 1870)
SCF: Error InvalidState: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 913)
SCF: Error InvalidState: Capture error with status 0 (channel 0) (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 922)
SCF: Error InvalidState: Sequence order error (124 received, 0 expected, channel 0) (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 929)
(NvCapture) Error InvalidState: Channel in error state, reset required (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureReleaseRequest(), line 649)
SCF: Error InvalidState: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 940)
NvCaptureStatusErrorDecode Stream 4.0 failed: sof_ts 6353058082048 eof_ts 6353066759040 frame 138 error 0 data 0x00000000
NvCaptureStatusErrorDecode Capture-Error: UNKNOWN (0x00000000)
(NvCapture) Error InvalidState: Channel is in error state, reset required (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureRequestGetAttribute(), line 1870)
SCF: Error InvalidState: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 913)
SCF: Error InvalidState: Capture error with status 0 (channel 0) (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 922)
SCF: Error InvalidState: Sequence order error (122 received, 0 expected, channel 0) (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 929)
(NvCapture) Error InvalidState: Channel in error state, reset required (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureReleaseRequest(), line 649)
SCF: Error InvalidState: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 940)
SCF: Error InvalidState: Sending critical error event (in src/api/Session.cpp, function sendErrorEvent(), line 992)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 983)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 983)
SCF: Error InvalidState: Timeout waiting on frame start sensor guid 4, capture sequence ID = 123 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1010)
SCF: Error InvalidState: Timeout waiting on frame start sensor guid 0, capture sequence ID = 125 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1010)
SCF: Error Timeout: (propagating from src/services/capture/CaptureServiceDeviceViCsi.cpp, function waitCompletion(), line 339)
SCF: Error Timeout: (propagating from src/services/capture/CaptureServiceDevice.cpp, function pause(), line 938)
SCF: Error Timeout: During capture abort, syncpoint wait timeout waiting for current frame to finish (in src/services/capture/CaptureServiceDevice.cpp, function handleCancelSourceRequests(), line 1032)
SCF: Error InvalidState: Timeout waiting on frame start sensor guid 2, capture sequence ID = 125 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1010)
PowerServiceCore:handleRequests: timePassed = 1524
(NvCapture) Error InvalidState: Channel in error state, reset required (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureGetRequest(), line 693)
SCF: Error InvalidState: (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function startCaptureInternal(), line 582)
SCF: Error InvalidState: (propagating from src/services/capture/CaptureRecord.cpp, function doCSItoMemCapture(), line 532)
SCF: Error InvalidState: (propagating from src/services/capture/CaptureRecord.cpp, function issueCapture(), line 469)
SCF: Error InvalidState: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1293)
SCF: Error InvalidState: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueBubbleFillCapturesIfNeeded(), line 676)
SCF: Error InvalidState: (propagating from src/services/capture/CaptureServiceDevice.cpp, function issueCaptures(), line 1135)
SCF: Error InvalidState: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
SCF: Error InvalidState: Worker thread CaptureScheduler frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
SCF: Error InvalidState: Sending critical error event (in src/api/Session.cpp, function sendErrorEvent(), line 992)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 983)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 983)
SCF: Error InvalidState: Something went wrong with waiting on frame start (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1069)
SCF: Error InvalidState: Something went wrong with waiting on frame start (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1069)
SCF: Error InvalidState: Something went wrong with waiting on frame start (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1069)
SCF: Error InvalidState: Capture Scheduler not running (in src/services/capture/CaptureServiceDevice.cpp, function addNewItemToSchedule(), line 908)
SCF: Error InvalidState: (propagating from src/services/capture/CaptureService.cpp, function addRequest(), line 395)
SCF: Error InvalidState: (propagating from src/components/stages/SensorCaptureStage.cpp, function doHandleRequest(), line 87)
SCF: Error InvalidState: (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 158)
SCF: Error Timeout: (propagating from src/api/Buffer.cpp, function waitForUnlock(), line 637)
SCF: Error Timeout: (propagating from src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 358)
waitForIdleLocked remaining request 220
waitForIdleLocked remaining request 217
SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 922)
SCF: Error Timeout: (propagating from src/api/Session.cpp, function abortCaptures(), line 888)
At that poing nvargus-daemon keeps showing the same error over and over again. Then I am forced to kill the deamon with ctrl+c to make it stop.
The issue does not show a defined behavior. Sometimes happens, other times don’t. However, the rate at which the issue occurs seems to be related with the resolution, frame-rate and number of cameras used. If I capture 3 cameras 4k@60 the issue don’t seem to appear. But, when I capture from 4 cameras with the same resolution and frame-rate, the issue starts to show more. If I capture 3 cameras 4k@90, the issue also shows more frequently. And if I capture at 30fps, the issue seems to stop.
I believe the issue could be related with the time it takes for nvargus to free the resources before the camera is powered off. However I am not sure. I would appreciate it very much if you could share with me some recommendations.
best regards,
Andres Campos
Embedded Software Engineer