GNOME Bugzilla – Bug 779984
rtspsrc: SIGSEGV while setting up pipeline with Sanyo VCC-HD2500P
Last modified: 2018-05-06 13:42:13 UTC
Pipline: gst-launch-1.0 rtspsrc location=rtspt://xx:554/VideoInput/1/h264/1 ! decodebin ! autovideosink Terminal output: Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Progress: (open) Opening Stream Progress: (connect) Connecting to rtspt://192.168.1.201:554/VideoInput/1/h264/1 Progress: (open) Retrieving server options Progress: (open) Retrieving media info Progress: (request) SETUP stream 0 Caught SIGSEGV Spinning. Please run 'gdb gst-launch-1.0 16348' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core. Relevant output from gdb:
+ Trace 237246
Thread 4 (Thread 0x7f54cd23c700 (LWP 20197))
Are you sure this is 1.10.4 ? I don't see a call to g_str_equal at gstrtspsrc.c line 6290. I believe it should be line 6346 ? Can you enable debug symbol for glib, so we can see the parameters passed to g_str_equal ? This call is not NULL safe, we might be in need of a check. We'd also need to find out why it's NULL in the first place.
I installed glib dbg package and ran the gdb again. The results unfortunately are the following:
+ Trace 237262
Thread 3 (Thread 0x7f14391a3700 (LWP 26325))
It seems I have to recompile and install glib with optimization flags disabled. I can take a shot at that if it is really necessary, but for now I can provide simple debug logs. I added the following snippet: if (stream->conninfo.location == NULL) printf("stream->conninfo.location == NULL\n"); else printf("stream->conninfo.location != NULL\n"); if (sskip->conninfo.location == NULL) printf("sskip->conninfo.location == NULL\n"); else printf("sskip->conninfo.location != NULL\n"); It produced the following: gst-launch-1.0 rtspsrc location=rtsp://192.168.1.201:554/VideoInput/1/h264/1 ! decodebin ! autovideosink Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Progress: (open) Opening Stream Progress: (connect) Connecting to rtsp://192.168.1.201:554/VideoInput/1/h264/1 Progress: (open) Retrieving server options Progress: (open) Retrieving media info Progress: (request) SETUP stream 0 stream->conninfo.location != NULL sskip->conninfo.location == NULL Caught SIGSEGV Spinning. Please run 'gdb gst-launch-1.0 4573' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
This conninfo.location crash looks familiar. I'm 90% sure this has been fixed, but I can't find the commit right now. In any case, the code has changed quite a bit in the mean time, so I think I will close this. Would be great if you could re-test with 1.14 or git master. Please re-open if it still happens with 1.14 or git master, thanks!