SIGSEGV after CTRL-C on gst-launch-1.0 nvarguscamerasrc. Where are the sources of libnvargus_socketclient.so?

Hello Nvidia experts,

I have a strange bug (with jetpack-4.5.1 on TX2 and TX1).
I run this pipeline

gst-launch-1.0 -v \
nvarguscamerasrc do-timestamp=true awblock=true aelock=true sensor-id=0 \
  ! 'video/x-raw(memory:NVMM),width=2464,height=2056,format=NV12,framerate=30/1' \
  ! nvvidconv \
  ! omxh264enc \
  ! qtmux \
  ! filesink location=test_color_5mp.mp4 -e

When I stop it using CTRL-C, it always stops cleanly in one terminal session, opened using ssh, but it always crashes in a serial session on the console. with the following messages :

Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 0:00:10.770440952
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
GST_ARGUS: Cleaning up
Caught SIGSEGV
#0  0x0000007fa0574310 in __GI___pthread_timedjoin_ex (threadid=548036506096, thread_return=0x0, abstime=0x0, block=<optimized out>)
#1  0x0000007fa0630968 in  () at /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0
#2  0x00000055a5c88c80 in  ()
Spinning.  Please run 'gdb gst-launch-1.0 10146' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.

In order to find out where the problem comes from, I restarted the same command under valgrind, and I got

Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 0:02:25.835249779
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
GST_ARGUS: Cleaning up
==9378== Invalid read of size 8
==9378==    at 0x5E92508: ??? (in /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so)
==9378==    by 0x5F1449F: ??? (in /usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so)
==9378==    by 0x48697EF: ??? (in /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so)
==9378==    by 0x48693D3: ??? (in /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so)
==9378==    by 0x486956F: ??? (in /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so)
==9378==    by 0x4B26087: start_thread (pthread_create.c:463)
==9378==    by 0x4C1AFFB: thread_start (clone.S:78)
==9378==  Address 0x58 is not stack'd, malloc'd or (recently) free'd
==9378==
Caught SIGSEGV

In order to understand and fix the bug, I’d need the sources of libnvargus_socketclient.so.

I downloaded https://developer.nvidia.com/embedded/l4t/r32_release_v5.1/r32_release_v5.1/sources/t186/public_sources.tbz2, but did not find the sources for libnvargus_socketclient.so there. Where are they available ?

Hi,
The prebuilt lib is not open source, it is at

/usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so

And please run with nvv4l2h264enc instead of omxh264enc. We are deprecating omx plugins.

Hello,

I tried to do the replacement, but that fails :

nvidia@tx2-jp451:~$ gst-launch-1.0 -v \
nvarguscamerasrc do-timestamp=true awblock=true aelock=true sensor-id=0   \
  ! 'video/x-raw(memory:NVMM),width=2464,height=2056,format=NV12,framerate=30/1'  \
  ! nvvidconv \
  ! nvv4l2h264enc \
  ! qtmux \
  ! filesink location=test_color_5mp.mp4 -e
WARNING: erroneous pipeline: could not link nvv4l2h264enc0 to qtmux0
nvidia@tx2-jp451:~$

For the original point, I do not really need the sources; I only need that library not to crash. Requesting the sources is my way of trying to help by fixing it myself.

Hi,
Please link with h264parse like:

... ! nvv4l2h264enc ! h264parse ! qtmux ! ...

Hello DaneLLL,

the replacement works, and does not crash anymore :)

Thank you !

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.