GNOME Bugzilla – Bug 721256
eventfd leak in souphttpsrc
Last modified: 2013-12-31 08:56:58 UTC
Use playbin to play http stream 1. create playbin, and set state playing 2. sleep 100 ms, at this time http stream is in connecting, but no buffer read out. 3. set state null, and gst_soup_http_src_unlock will be called. In function gst_soup_http_src_unlock, will quit src->loop. /* Interrupt a blocking request. */ static gboolean gst_soup_http_src_unlock (GstBaseSrc * bsrc) { GstSoupHTTPSrc *src; src = GST_SOUP_HTTP_SRC (bsrc); GST_DEBUG_OBJECT (src, "unlock()"); src->interrupted = TRUE; if (src->loop) g_main_loop_quit (src->loop); return TRUE; } If the http connection is in building process, and at this time g_main_loop_quit (src->loop), will cause eventfd leak in libsoup. Simply quit src->loop can make function gst_soup_http_src_create return immediately, but will cause eventfd leak. Every time can leak one or three. But if function gst_soup_http_src_create create a buffer, and then call gst_soup_http_src_unlock, will have no leak. So I think should add a mutex to protect gst_soup_http_src_create and gst_soup_http_src_unlock.
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find. *** This bug has been marked as a duplicate of bug 663944 ***