We are trying to recover the stream of temporarily disconnected cameras in our application based on the libargus. When we detect a disconnection, we restart both producer and consumer to retrieve the stream. However, we sometimes face a segfault on libnvargus_socket.so.
How can we avoid/catch the segfault to avoid the application crash?
How to debug the libargus to understand where the segfault come from?
Here is the logs with gdb when the segfault is received: logs_gdb_segfault.txt (7.0 KB)
We noticed that the segfault happens only on multiple camera streams. We tried to run the two samples simultaneously with 2 different cameras and we also have a segfault when a camera is disconnected (seems to come from the sample 10_argus_camera_recording).
Do you have a sample that handles errors for multiple camera streams ?
We finally managed to retrieve the stream. However, we often face some argus errors on the disconnection which slow down a lot the recovery:
(Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp,
(Argus) Error Timeout: (propagating from src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 137)
(Argus) Error Timeout: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
Is there a way to avoid being blocked by these errors for a long time?