[Bug 748358] rtpmanager: rtp session refcount issue in 1.4

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Apr 23 06:38:35 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=748358

Tim-Philipp Müller <t.i.m at zen.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |t.i.m at zen.co.uk
            Summary|GStreamer-CRITICAL **:      |rtpmanager: rtp session
                   |gst_mini_object_unref:      |refcount issue in 1.4
                   |assertion                   |
                   |'mini_object->refcount > 0  |

--- Comment #1 from Tim-Philipp Müller <t.i.m at zen.co.uk> ---
Sorry, but what line exactly did you remove to make it work? Can you make a
diff/patch to show us?


I can reproduce with 1.4:

tpm at xps:~$ valgrind gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:8554/test
timeout=0 tcp_timeout=1000000 protocols=4 ! fakesink num-buffers=100 
==18406== Memcheck, a memory error detector
==18406== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==18406== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==18406== Command: gst-launch-1.0 rtspsrc location=rtsp://127.0.0.1:8554/test
timeout=0 tcp_timeout=1000000 protocols=4 ! fakesink num-buffers=100
==18406== 
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://127.0.0.1:8554/test
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (request) SETUP stream 1
Progress: (open) Opened Stream
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
Got EOS from element "pipeline0".
Execution ended after 0:00:02.124186855
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
==18406== Invalid read of size 4
==18406==    at 0x4E9782C: gst_mini_object_unref (in
/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.404.0)
==18406==    by 0x53D0236: g_hash_table_remove_all_nodes (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0x53D0FC9: g_hash_table_remove_all (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0x53D103D: g_hash_table_destroy (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0xC8C61B2: free_session (in
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so)
==18406==    by 0x53FFD4C: g_slist_foreach (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0xC8C6069: gst_rtp_bin_dispose (in
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so)
==18406==    by 0x515B1F4: g_object_unref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4200.1)
==18406==    by 0x4E9363B: _gst_message_free (in
/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.404.0)
==18406==    by 0x4E71BB7: gst_bus_set_flushing (in
/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.404.0)
==18406==    by 0x4EA640C: gst_pipeline_change_state (in
/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.404.0)
==18406==    by 0x4E86B11: gst_element_change_state (in
/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.404.0)
==18406==  Address 0x741d4c8 is 8 bytes inside a block of size 72 free'd
==18406==    at 0x4C29E90: free (vg_replace_malloc.c:473)
==18406==    by 0x53D0236: g_hash_table_remove_all_nodes (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0x53D0FC9: g_hash_table_remove_all (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0x53D103D: g_hash_table_destroy (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0xC8EFA53: gst_rtp_session_finalize (in
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so)
==18406==    by 0x515B269: g_object_unref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4200.1)
==18406==    by 0x4E63B5C: gst_bin_remove_func (in
/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.404.0)
==18406==    by 0xC8C615C: free_session (in
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so)
==18406==    by 0x53FFD4C: g_slist_foreach (in
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4200.1)
==18406==    by 0xC8C6069: gst_rtp_bin_dispose (in
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so)
==18406==    by 0x515B1F4: g_object_unref (in
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4200.1)
==18406==    by 0x4E9363B: _gst_message_free (in
/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0.404.0)
==18406== 

(gst-launch-1.0:18406): GStreamer-CRITICAL **: gst_mini_object_unref: assertion
'mini_object->refcount > 0' failed

(gst-launch-1.0:18406): GStreamer-CRITICAL **: gst_mini_object_unref: assertion
'mini_object->refcount > 0' failed
Freeing pipeline ...


git master behaves differently (no buffering, pretty much exits right away),
there might be another bug hiding this problem, so not sure it still exists in
master or not. Also not sure what would have fixed this.

-- 
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