<div dir="ltr">I'm trying to make the stand alone test case, and it turns out I did got something interesting:<div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div style><a href="https://github.com/duzy/gst-switch/blob/master/tests/test_fd_leaks.c">https://github.com/duzy/gst-switch/blob/master/tests/test_fd_leaks.c</a></div>

</blockquote><div><br></div><div style>It looks like the GST_STATE_CHANGE_READY_TO_NULL message was not issued while I was stopping the worker (setting the pipeline to GST_STATE_NULL). Yet the state did changed into NULL (according to gst_element_get_state). I'm wondering if I was doing something wrong. </div>

<div style><br></div><div style>But when I enabled this line:</div><div style><br></div><div style><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div style>// see: <a href="https://github.com/duzy/gst-switch/blob/master/tools/gstworker.c#L629">https://github.com/duzy/gst-switch/blob/master/tools/gstworker.c#L629</a></div>

</blockquote></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div style>gst_pipeline_set_auto_flush_bus (GST_PIPELINE (worker->pipeline), FALSE);</div></blockquote><div style><br></div><div style>

I got the expected GST_STATE_CHANGE_READY_TO_NULL state change message.</div><div style><br></div><div style>Do you guys have some ideas on this? I assume I should have missed something.</div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Thu, Feb 7, 2013 at 9:12 AM, Duzy Chan <span dir="ltr"><<a href="mailto:geek@duzy.info" target="_blank">geek@duzy.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="im">On Thu, Feb 7, 2013 at 6:17 AM, David Schleef <span dir="ltr"><<a href="mailto:ds@schleef.org" target="_blank">ds@schleef.org</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On Wed, Feb 06, 2013 at 06:40:08PM +0800, Duzy Chan wrote:<br>
> On Wed, Feb 6, 2013 at 6:22 PM, Tim-Philipp Müller <<a href="mailto:t.i.m@zen.co.uk" target="_blank">t.i.m@zen.co.uk</a>> wrote:<br>
><br>
</div><div>> > Yes, I did check that out and did look at it, but I'm afraid I don't<br>
> > really have time to look at all that in detail, hence the request for<br>
> > something stand-alone and minimal. If it's an issue with pipeline<br>
> > creation / GstBus / watch usage, it shouldn't be too hard to re-create.<br>
> ><br>
><br>
> I would like to do a bit effort to make a stand alone minimal test case of<br>
> the GstBus usage, and see if we can duplicate the same issue to help to<br>
> find out the reason.<br>
><br>
<br>
</div>The first thing you should check is that you are properly cleaning<br>
up all your objects.  If you leak a pipeline, object, or bus, you'll<br>
end up with multiple copies of intervideosrc around, which will<br>
use file descriptors.<br></blockquote><div><br></div></div><div>I hacked a bit into intervideosrc, but it looks like the inter elements are all memory based, which I think should be in-process available, without allocating a file descriptor, all memory based utilities: list, buffer, mutex.</div>


<div><br></div><div>Now I'm thinking that if there're any messages which holding the references of the pipeline, and when I unref-ed the pipeline, somehow caused cycling-referencing (my guess). Because in per cycle reset of the pipeline, I did g_source_remove the watch, gst_object_unref the bus, null and gst_object_unref the pipeline.</div>


<div><br></div><div>I tried to make my reset function (say gst_worker_reset) none-operation (which I commented out all, leaving a "result = TRUE"), and the file descriptor leaks gone.</div><div>
<br></div><div>So I'm guessing it's somehow getting cycling-referencing or I did forgot to unref something.</div><div><br></div><div>I'll spend some time to play around the stand-alone test code to try to duplicate the execution flow in minimal. And also check further. </div>

<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span><font color="#888888"><br>
<br>
<br>
David<br>
</font></span><div><div><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</div></div></blockquote></div></div><br></div></div>
</blockquote></div><br></div>