- [i]since I'm not able to recreate the failure in comment #6 with argus_camera application.
suggest you should also review your application implementation.[/i]
argus_camera produces the same errors for me. In fact, argus_camera produces them more frequently. Having AE-Lock enabled made no difference. Are you testing in multi-process or single-process mode? I built argus_camera in single-process.
- [i]there're several buffer transmit from low-level sensor driver layer to internal camera core stack, and finally rendering to frame display.
such Argus failure is due to a race condition between the buffer transmit to each stages, which only observed with high CPU loading.[/i]
I’m still confused as to what changed in the binaries you provided. It’s still hitting the Failed to fetch stats for frame XXX error, it just isn’t spamming error messages afterward and is able to continue. Is that effect from increasing the internal queue sizes? I figured that increasing the queue sizes would only help in preventing the error… not change behavior after the error is encountered.
Also, it isn’t only observed with high CPU loading. High CPU load just triggers it more easily. If there’s a race condition that can happen with high cpu load, then it can happen with low cpu load. You’re just hoping that it’s infrequent, which isn’t a viable plan for something in production.
Interestingly, I noticed that when other errors happen (i.e. not the Failed to fetch stats for frame XXX) I’m still getting the high rate message spam even with the new binaries. For example, when running argus_camera if I switch the sensor mode while in multi-session mode I almost always hit this error:
SCF: Error Timeout: (propagating from src/components/amr/Snapshot.cpp, function waitForNewerSample(), line 92)
SCF_AutocontrolACSync failed to wait for an earlier frame to complete.
SCF: Error Timeout: (propagating from src/components/ac_stages/ACSynchronizeStage.cpp, function doHandleRequest(), line 126)
SCF: Error Timeout: (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 137)
SCF: Error Timeout: Sending critical error event (in src/api/Session.cpp, function sendErrorEvent(), line 990)
And then I get the high-rate repeated message spam:
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 667)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 109)
- FYI, according to Jetson TX2 Series Software Features of CSI and USB Camera Features.
you'll also note that it did not claim running multi-cam solution with CPU stressed.
What is the definition of CPU stressed to know when it should work or not?