<html>
    <head>
      <base href="https://bugzilla.gnome.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_UNCONFIRMED "
   title="UNCONFIRMED - [uridecodebin] Memory leak in internal multiqueue with DASH stream"
   href="https://bugzilla.gnome.org/show_bug.cgi?id=744253">744253</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[uridecodebin] Memory leak in internal multiqueue with DASH stream
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Platform
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>GStreamer
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>UNCONFIRMED
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>major
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>gst-plugins-base
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>gstreamer-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>dv@pseudoterminal.org
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>gstreamer-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>GNOME version</th>
          <td>---
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Hello,

This gst-launch line leaks rapidly:

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

I presume because in both cases, that multiqueue0 isn't present.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>