[Bug 705760] New: rtspsrc produces GLib error

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Sat Aug 10 09:43:12 PDT 2013


https://bugzilla.gnome.org/show_bug.cgi?id=705760
  GStreamer | gst-plugins-good | 1.1.3

           Summary: rtspsrc produces GLib error
    Classification: Platform
           Product: GStreamer
           Version: 1.1.3
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: awkravchuk at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Hi.
I've stumbled upon a bug introduced between GStreamer 1.1.2 and 1.1.3. Symptom
is rtspsrc element isn't working, aborting any application with message

GLib:ERROR:/tmp/buildd/glib2.0-2.33.12+really2.32.4/./glib/gchecksum.c:1321:g_checksum_get_string:code
should not be reached

and backtrace looking like

#1  0x00007f2d386266f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f2d37f10477 in g_assertion_message ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2d37ed25f7 in g_checksum_get_string ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f2d35d6b67f in gst_rtspsrc_handle_data (src=src at entry=0x1b4a000,
    message=message at entry=0x7f2d3282cd10) at gstrtspsrc.c:3908
#5  0x00007f2d35d756a1 in gst_rtspsrc_loop_interleaved (src=0x1b4a000)
    at gstrtspsrc.c:4060
#6  gst_rtspsrc_loop (src=0x1b4a000) at gstrtspsrc.c:4484
#7  gst_rtspsrc_thread (src=0x1b4a000) at gstrtspsrc.c:6971
#8  0x00007f2d39687be1 in gst_task_func (task=0x1bb8000) at gsttask.c:316
#9  0x00007f2d37f12742 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f2d37f11f45 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f2d38981b50 in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#12 0x00007f2d386cba7d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000000000 in ?? ()

I've digged in sources of gst_rtspsrc_handle_data() and found the bug: prior
1.1.2, there were some manipulations with GChecksum:
http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtsp/gstrtspsrc.c?id=1.1.2#n3898
with the following call of g_checksum_free(), in 1.1.3 this manipulations were
put in for loop (line 3904) for all streams:
http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tree/gst/rtsp/gstrtspsrc.c?id=1.1.3#n3900
, but the call of g_checksum_free() got into the loop body, so checksum gets
invalid after first loop iteration.

The fix would be simple - just move g_checksum_free() out of streams loop body.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list