After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 775746 - Threads leaking after freeing up qmlglsink
Threads leaking after freeing up qmlglsink
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.11.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Reported: 2016-12-07 09:59 UTC by Sergey Borovkov
Modified: 2016-12-07 13:28 UTC
See Also:
GNOME target: ---
GNOME version: ---

Description Sergey Borovkov 2016-12-07 09:59:59 UTC
After every video playback on RPI I have threads from gstreamer that never get freed.

Backtrace looks like this:

Thread 31 (Thread 2025.2345)

  • #0 syscall
    from /work/build/buildroot/target//lib/
  • #1 g_cond_wait_until
    at gthread-posix.c line 1437
  • #2 g_async_queue_pop_intern_unlocked
    at gasyncqueue.c line 422
  • #3 g_async_queue_timeout_pop
    at gasyncqueue.c line 543
  • #4 g_thread_pool_wait_for_new_pool
    at gthreadpool.c line 167
  • #5 g_thread_pool_thread_proxy
    at gthreadpool.c line 364
  • #6 g_thread_proxy
    at gthread.c line 764
  • #7 start_thread
    from /work/build/buildroot/target//lib/
  • #8 ??
    from /work/build/buildroot/target//lib/

Comment 1 Matthew Waters (ystreet00) 2016-12-07 12:00:25 UTC
Reproducable with the sink test app if we destroy the QApplication before gst_deinit() is executed.
Comment 2 Matthew Waters (ystreet00) 2016-12-07 13:28:37 UTC
commit afae1c53d21e5d6716796aa46f0ce469ce47c3c7
Author: Matthew Waters <>
Date:   Wed Dec 7 22:55:46 2016 +1100

    qml/item: also unref the display on destruction
    Leaking objects (and a thread!) is never a good idea.

commit de41d74e6fc0453b5a929d269019f68812563828
Author: Matthew Waters <>
Date:   Wed Dec 7 22:58:29 2016 +1100

    tests/examples/qmlsink: scope QApplication/Engine
    So they are destroyed before gst_deinit() is run and the leaks tracer
    doesn't show false-positives.