3 cameras streaming with GstNvArgusCameraSrc - if one of the connections is faulty, the whole system shuts down!

Continuing the discussion from GstNvArgusCameraSrc Segmentation Fault on Camera Disconnection:

This same scenario happens on our system (using D3-RELEASE-5.0.0). If one camera is faulty, we’d like its video to stop streaming, but the rest of the system should continue normal functioning.

How can the SIGSEGV interrupt be caught?

Thanks,
Mechi

hello mechi.fendel,

may I know which Jetpack release version you’re using.
and… what’s the pipeline you’re running? are you having single instance to enable all these 3 camera stream?

furthermore,
could you please setup a terminal for running $ dmesg --follow to capture the logs,
what’s the error reported when the connections is faulty, then making whole system shuts down?

Hi Jerry,
Jetpack version 4.6.1 (L4T R32.7.1)

I opened 3 terminals. In each I started streaming with the following: (ID = 0, 1, or 2)

gst-launch-1.0 nvarguscamerasrc sensor-id=${ID} ! fpsdisplaysink text-overlay=false video-sink=fakesink -v

Video 0 and 1 have very similar output:

Video 0:

> /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 3409, dropped: 0, current: 15.04, average: 14.98
> /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 3417, dropped: 0, current: 14.90, average: 14.98
> /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 3425, dropped: 0, current: 15.03, average: 14.98
> ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: DISCONNECTED
> Additional debug info:
> Argus Error Status
> Execution ended after 0:03:49.734837760
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> CONSUMER: ERROR OCCURRED
> (Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 266)
> (Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 368)
> (Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
> (Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
> (Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
> (Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
> Caught SIGSEGV
> GST_ARGUS: Cleaning up
> (Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
> (Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
> Segmentation fault (core dumped)

Video2 – which was actually stopped - has almost the identical output!

> /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 825, dropped: 0, current: 14.98, average: 14.99
> ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: DISCONNECTED
> Additional debug info:
> Argus Error Status
> Execution ended after 0:00:57.536844608
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> CONSUMER: ERROR OCCURRED
> (Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 266)
> (Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 368)
> (Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
> (Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
> (Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
> (Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
> Caught SIGSEGV
> GST_ARGUS: Cleaning up
> (Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
> (Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
> Segmentation fault (core dumped)

is it possible for moving to the latest JP-4.x release verison?

No.
We’re using the D3 board with 16 FPDlink ports.
We were told that this is the version that works best for our setup.

BTW - there are many reasons that a camera can stop streaming - especially in a dynamic, moving system running 24/7 - a faulty cable etc.

I caused the camera to disconnect by setting the register using i2c command from another terminal:
i2ctransfer -y -f 1 w3@0x66 0x1 0x0 0

where 0x66 is the camera’s address. Write to register 0x100.

Can anyone answer??
We’d like to check why there’s a SIGSEGV error before shutting down the whole system!

There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

Sorry for the late response, is this still an issue to support? Thanks