Hello,
Sometimes my Orin gets into a state where when I try to stream cameras w/ argus I get a lot of the following warnings/errors:
Module_id 30 Severity 2 : (fusa) Error: Timeout propagating from:/capture/src/fusaViHandler.cpp 820
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 3, capture sequence ID = 0 draining session frameStart events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 529)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 0 draining session frameEnd events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 646)
SCF: Error InvalidState: Sensor 3 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 3, capture sequence ID = 0 draining session frameEnd events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 646)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 0, capture sequence ID = 0 draining session frameEnd events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 646)
Module_id 30 Severity 2 : (fusa) Error: Timeout propagating from:/capture/src/fusaViHandler.cpp 820
Module_id 30 Severity 2 : (fusa) Error: Timeout propagating from:/capture/src/fusaViHandler.cpp 820
SCF: Error InvalidState: Sensor 0 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Sensor 5 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 0 draining session frameStart events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 529)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 0, capture sequence ID = 0 draining session frameStart events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 529)
(Argus) Error Timeout: (propagating from src/api/BufferOutputStreamImpl.cpp, function acquireBuffer(), line 264)
(Argus) Error Timeout: (propagating from src/api/BufferOutputStreamImpl.cpp, function acquireBuffer(), line 264)
(Argus) Error Timeout: (propagating from src/api/BufferOutputStreamImpl.cpp, function acquireBuffer(), line 264)
(Argus) Error Timeout: (propagating from src/api/BufferOutputStreamImpl.cpp, function acquireBuffer(), line 264)
(Argus) Error Timeout: (propagating from src/api/BufferOutputStreamImpl.cpp, function acquireBuffer(), line 264)
(Argus) Error Timeout: (propagating from src/api/BufferOutputStreamImpl.cpp, function acquireBuffer(), line 264)
Sometimes this causes my program that calls into argus to fully crash, and sometimes it limps along in a degraded state (non-deterministic).
I think its introduced when the cameras are ‘hotplugged’, or streaming is suddenly stopped from under the Orin, or something is putting the VI/RTCPU system into a bad state (my guess). As far as I can tell, the only way to recover from this is a full reboot (sudo reboot) of the Orin system.
-
Is there any way to detect that the Orin is in this state beforehand so I can raise a warning and not even attempt to stream, since trying to stream seems to be non-deterministic in how it fails?
-
Is there any way to recover from this and reset RTCPU/VI without reboot? I have tried all the naive things of restarting argus, unloading/reloading my camera kernel drivers, etc. But nothing as far as I know is doing a proper reset of the hardware that manages the actual MIPI CSI Busses which I think is the real problem.