[gstreamer-bugs] [Bug 573720] New: Memory Leak when playing shoutcast streams

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Mon Mar 2 00:33:44 PST 2009


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=573720

  GStreamer | gstreamer (core) | Ver: 0.10.21
           Summary: Memory Leak when playing shoutcast streams
           Product: GStreamer
           Version: 0.10.21
          Platform: Other
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: anonbeat at gmail.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: 2.23/2.24
   GNOME milestone: Unspecified


Please describe the problem:
There is a memory leak when playing shoutcast streams. I have tested it with
Totem, Rhythmbox and the application im working on.

Steps to reproduce:
1. Start the gstreamer application you prefer that support shoutcast streams
like totem or rhythmbox
2. Add a shoutcast radio like http://64.71.145.130:8095
3. Start playing and note the used memory with system monitor
4. The memory used will be increased by about 1Mb each 2 mins


Actual results:
If you follow this steps you can see the memory is allocated and not freed and
will take you the whole system mem in several hours

Expected results:
What I expected was that the memory used by gstream will be stable and freed
once its played but its not happening. 

Does this happen every time?
Yes

Other information:
I have tested the application im developing with valgrind and shows this leaks
points

==25840== 45,452 bytes in 908 blocks are possibly lost in loss record 230 of
244
==25840==    at 0x4006AEE: malloc (vg_replace_malloc.c:207)
==25840==    by 0x700A23: g_malloc (gmem.c:131)
==25840==    by 0x717542: g_slice_alloc (gslice.c:824)
==25840==    by 0x717874: g_slice_alloc0 (gslice.c:833)
==25840==    by 0xC4C3EA: g_type_create_instance (gtype.c:1654)
==25840==    by 0x6F4E564: gst_mini_object_new (gstminiobject.c:181)
==25840==    by 0x6F4D399: gst_message_new_custom (gstmessage.c:285)
==25840==    by 0x6F4DB83: gst_message_new_buffering (gstmessage.c:478)
==25840==    by 0x62E92A0: check_queue (gstplaybasebin.c:524)
==25840==    by 0x6F8FD55: gst_marshal_BOOLEAN__POINTER (gstmarshal.c:584)
==25840==    by 0xC2B1FA: g_closure_invoke (gclosure.c:767)
==25840==    by 0xC41654: signal_emit_unlocked_R (gsignal.c:3244)
==25840==    by 0x6F50884: gst_pad_emit_have_data_signal (gstpad.c:3817)
==25840==    by 0x6F54749: gst_pad_chain_unchecked (gstpad.c:3855)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x62ECC67: gst_selector_pad_chain (gststreamselector.c:424)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6F465B9: gst_proxy_pad_do_chain (gstghostpad.c:207)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6E6B9F4: (within /usr/lib/gstreamer-0.10/libgstmad.so)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6C8E7E0: (within
/usr/lib/gstreamer-0.10/libgstmpegaudioparse.so)
==25840==    by 0x6C902AF: (within
/usr/lib/gstreamer-0.10/libgstmpegaudioparse.so)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x58F4CE9: gst_icydemux_typefind_or_forward (gsticydemux.c:479)
==25840==    by 0x58F518F: gst_icydemux_chain (gsticydemux.c:524)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x63138E9: gst_type_find_element_chain
(gsttypefindelement.c:622)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6F465B9: gst_proxy_pad_do_chain (gstghostpad.c:207)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6350A30: gst_base_src_loop (gstbasesrc.c:2187)
==25840==    by 0x6F74D32: gst_task_func (gsttask.c:192)
==25840== 

==25840== 520,064 bytes in 2,032 blocks are possibly lost in loss record 237 of
244
==25840==    at 0x4006C0C: realloc (vg_replace_malloc.c:429)
==25840==    by 0x700909: g_realloc (gmem.c:170)
==25840==    by 0x6D11CF: g_array_maybe_expand (garray.c:339)
==25840==    by 0x6D1748: g_array_append_vals (garray.c:132)
==25840==    by 0x6F6B44C: gst_structure_set_field (gststructure.c:628)
==25840==    by 0x6F6C2CA: gst_structure_id_set_valist (gststructure.c:602)
==25840==    by 0x6F6C3BE: gst_structure_id_set (gststructure.c:560)
==25840==    by 0x6F4DB69: gst_message_new_buffering (gstmessage.c:471)
==25840==    by 0x62E92A0: check_queue (gstplaybasebin.c:524)
==25840==    by 0x6F8FD55: gst_marshal_BOOLEAN__POINTER (gstmarshal.c:584)
==25840==    by 0xC2B1FA: g_closure_invoke (gclosure.c:767)
==25840==    by 0xC41654: signal_emit_unlocked_R (gsignal.c:3244)
==25840==    by 0x6F50884: gst_pad_emit_have_data_signal (gstpad.c:3817)
==25840==    by 0x6F54749: gst_pad_chain_unchecked (gstpad.c:3855)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x62ECC67: gst_selector_pad_chain (gststreamselector.c:424)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6F465B9: gst_proxy_pad_do_chain (gstghostpad.c:207)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6E6B9F4: (within /usr/lib/gstreamer-0.10/libgstmad.so)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6C8E7E0: (within
/usr/lib/gstreamer-0.10/libgstmpegaudioparse.so)
==25840==    by 0x6C902AF: (within
/usr/lib/gstreamer-0.10/libgstmpegaudioparse.so)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x58F4CE9: gst_icydemux_typefind_or_forward (gsticydemux.c:479)
==25840==    by 0x58F518F: gst_icydemux_chain (gsticydemux.c:524)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x63138E9: gst_type_find_element_chain
(gsttypefindelement.c:622)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6F465B9: gst_proxy_pad_do_chain (gstghostpad.c:207)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6350A30: gst_base_src_loop (gstbasesrc.c:2187)
==25840==    by 0x6F74D32: gst_task_func (gsttask.c:192)
==25840== 

==25840== 268,705,730 (24,086,080 direct, 244,619,650 indirect) bytes in
756,575 blocks are definitely lost in loss record 242 of 244
==25840==    at 0x4006AEE: malloc (vg_replace_malloc.c:207)
==25840==    by 0x700A23: g_malloc (gmem.c:131)
==25840==    by 0x717542: g_slice_alloc (gslice.c:824)
==25840==    by 0x717874: g_slice_alloc0 (gslice.c:833)
==25840==    by 0x6F6DC3A: gst_structure_id_empty_new_with_size
(gststructure.c:116)
==25840==    by 0x6F4DAA1: gst_message_new_buffering (gstmessage.c:470)
==25840==    by 0x62E92A0: check_queue (gstplaybasebin.c:524)
==25840==    by 0x6F8FD55: gst_marshal_BOOLEAN__POINTER (gstmarshal.c:584)
==25840==    by 0xC2B1FA: g_closure_invoke (gclosure.c:767)
==25840==    by 0xC41654: signal_emit_unlocked_R (gsignal.c:3244)
==25840==    by 0x6F50884: gst_pad_emit_have_data_signal (gstpad.c:3817)
==25840==    by 0x6F54749: gst_pad_chain_unchecked (gstpad.c:3855)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x62ECC67: gst_selector_pad_chain (gststreamselector.c:424)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6F465B9: gst_proxy_pad_do_chain (gstghostpad.c:207)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6E6B9F4: (within /usr/lib/gstreamer-0.10/libgstmad.so)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6C8E7E0: (within
/usr/lib/gstreamer-0.10/libgstmpegaudioparse.so)
==25840==    by 0x6C902AF: (within
/usr/lib/gstreamer-0.10/libgstmpegaudioparse.so)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x58F4CE9: gst_icydemux_typefind_or_forward (gsticydemux.c:479)
==25840==    by 0x58F518F: gst_icydemux_chain (gsticydemux.c:524)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x63138E9: gst_type_find_element_chain
(gsttypefindelement.c:622)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6F465B9: gst_proxy_pad_do_chain (gstghostpad.c:207)
==25840==    by 0x6F547D8: gst_pad_chain_unchecked (gstpad.c:3877)
==25840==    by 0x6F55A19: gst_pad_push (gstpad.c:4045)
==25840==    by 0x6350A30: gst_base_src_loop (gstbasesrc.c:2187)
==25840==    by 0x6F74D32: gst_task_func (gsttask.c:192)
==25840==    by 0x724325: g_thread_pool_thread_proxy (gthreadpool.c:265)
==25840==    by 0x722C8E: g_thread_create_proxy (gthread.c:635)


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=573720.




More information about the Gstreamer-bugs mailing list