[Bug 744253] New: [uridecodebin] Memory leak in internal multiqueue with DASH stream

bugzilla at gnome.org bugzilla at gnome.org
Tue Feb 10 03:39:23 PST 2015


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

            Bug ID: 744253
           Summary: [uridecodebin] Memory leak in internal multiqueue with
                    DASH stream
    Classification: Platform
           Product: GStreamer
           Version: unspecified
                OS: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-plugins-base
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: dv at pseudoterminal.org
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Hello,

This gst-launch line leaks rapidly:

gst-launch-1.0 uridecodebin
uri=http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-720p-stereo-nodvb.mpd
caps="video/x-h264 ; audio/mpeg" ! fakesink sync=true

After examination, it turns out that the cause is an internal multiqueue that
is steadily increasing its internal limit, apparently because one queue is not
linked.

Here is an excerpt of log lines that show the leak:

gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2507/2508, bytes 6664375/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2508/2508, bytes 6667271/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2508/2509, bytes 6667271/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2509/2509, bytes 6670167/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2509/2510, bytes 6670167/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2510/2510, bytes 6673063/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2510/2511, bytes 6673063/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2511/2511, bytes 6675959/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2511/2512, bytes 6675959/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2512/2512, bytes 6677407/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2512/2513, bytes 6677407/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2513/2513, bytes 6681503/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2513/2514, bytes 6681503/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2514/2514, bytes 6681751/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2514/2515, bytes 6681751/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2515/2515, bytes 6684647/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2515/2516, bytes 6684647/0, time 7680000000/0
gstmultiqueue.c:2230:single_queue_check_full:<multiqueue0> queue 0: visible
2516/2516, bytes 6687543/0, time 7680000000/0

and this shows when it is increased:

gstmultiqueue.c:2136:single_queue_overrun_cb:<multiqueue0> Queue 1 is
not-linked
gstmultiqueue.c:2157:single_queue_overrun_cb:<multiqueue0> All other queues are
not linked
gstmultiqueue.c:2163:single_queue_overrun_cb:<multiqueue0> Bumping single queue
0 max visible to 2448
gstmultiqueue.c:2136:single_queue_overrun_cb:<multiqueue0> Queue 1 is
not-linked
gstmultiqueue.c:2157:single_queue_overrun_cb:<multiqueue0> All other queues are
not linked
gstmultiqueue.c:2163:single_queue_overrun_cb:<multiqueue0> Bumping single queue
0 max visible to 2449
gstmultiqueue.c:2136:single_queue_overrun_cb:<multiqueue0> Queue 1 is
not-linked
gstmultiqueue.c:2157:single_queue_overrun_cb:<multiqueue0> All other queues are
not linked
gstmultiqueue.c:2163:single_queue_overrun_cb:<multiqueue0> Bumping single queue
0 max visible to 2450
gstmultiqueue.c:2136:single_queue_overrun_cb:<multiqueue0> Queue 1 is
not-linked
gstmultiqueue.c:2157:single_queue_overrun_cb:<multiqueue0> All other queues are
not linked
gstmultiqueue.c:2163:single_queue_overrun_cb:<multiqueue0> Bumping single queue
0 max visible to 2451
gstmultiqueue.c:2136:single_queue_overrun_cb:<multiqueue0> Queue 1 is
not-linked
gstmultiqueue.c:2157:single_queue_overrun_cb:<multiqueue0> All other queues are
not linked
gstmultiqueue.c:2163:single_queue_overrun_cb:<multiqueue0> Bumping single queue
0 max visible to 2452

This happens with all versions up to and including the current git one. On the
PC it does not happen with playbin, however. It also does not happen wih these
other pipelines:

gst-launch-1.0 uridecodebin
uri=http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-720p-stereo-nodvb.mpd
caps="audio/x-m4a ; video/quicktime" ! fakesink sync=true
gst-launch-1.0 souphttpsrc
location=http://rdmedia.bbc.co.uk/dash/ondemand/testcard/1/client_manifest-720p-stereo-nodvb.mpd
! decodebin caps="video/x-h264 ; audio/mpeg" ! fakesink sync=true

I presume because in both cases, that multiqueue0 isn't present.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-bugs/attachments/20150210/ef77a2f5/attachment-0001.html>


More information about the gstreamer-bugs mailing list