[Bug 752651] decodebin: segfault on setting to NULL

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Oct 21 09:19:53 PDT 2015


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

--- Comment #39 from Vincent Penquerc'h <vincent.penquerch at collabora.co.uk> ---
I'm not 100% sure this is related, but for completeness: I've been running with
valgrind, and while I'm not seeing that crash so far, I've seen another one,
twice now:

I get the message:

(uridecodebin-test:17558): GStreamer-WARNING **: 
Trying to join task 0xfc47120 from its thread would deadlock.
You cannot change the state of an element from its streaming
thread. Use g_idle_add() or post a GstMessage on the bus to
schedule the state change from the main thread.

from:

==17558== 
==17558== Process terminating with default action of signal 5 (SIGTRAP):
dumping core
==17558==    at 0x53F2A91: _g_log_abort (gmessages.c:311)
==17558==    by 0x53F36E3: g_logv (gmessages.c:1033)
==17558==    by 0x53F3851: g_log (gmessages.c:1071)
==17558==    by 0x4ED7B60: gst_task_join (gsttask.c:847)
==17558==    by 0x4EA36BC: gst_pad_finalize (gstpad.c:730)
==17558==    by 0x5166902: g_object_unref (gobject.c:3112)
==17558==    by 0x4E8D08F: gst_element_remove_pad (gstelement.c:811)
==17558==    by 0x4E8D442: gst_element_dispose (gstelement.c:2934)
==17558==    by 0x516687C: g_object_unref (gobject.c:3075)
==17558==    by 0x4EA389D: do_stream_status.isra.0 (gstpad.c:5793)
==17558==    by 0x4ED6982: gst_task_func (gsttask.c:302)
==17558==    by 0x5410B67: g_thread_pool_thread_proxy (gthreadpool.c:307)
==17558==    by 0x5410304: g_thread_proxy (gthread.c:764)
==17558==    by 0x56DAE99: start_thread (pthread_create.c:308)
==17558== 

It looks like the pad in question was unreffed while do_stream_status was
running, and holding the last ref, so unreffing it causes the pad to be
destroyed, which causes its task to stop and join. I'm not familiar with this
code, but it seems like it should not happen.

This might need a new bug for it if it turns out to be a different issue.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list