GNOME Bugzilla – Bug 166674
deadlock detected using opt and playbin
Last modified: 2005-06-09 14:26:00 UTC
Here's a backtrace captured when using playbin to play a DVD with DTS. This seems to be caused by dtsdec currently being loopbased. (gdb) cont Continuing. ** (totem:9944): WARNING **: deadlock detected, disabling group 0x848f920 ERROR (0x83f0938 - 307742:40:30.541820000) scheduler( 9944) gstoptimalscheduler.c(2797):gst_opt_scheduler_iterate:<GstOptScheduler@0x83f0868> in error state [New Thread -1253733456 (LWP 10730)] [New Thread -1255957584 (LWP 10731)] Breakpoint 2, 0xb75f8e7e in g_log () from /usr/lib/libglib-2.0.so.0 (gdb) cont Continuing. ** (totem:9944): WARNING **: deadlock detected, disabling group 0x848f920 ERROR (0x83f0938 - 307742:40:44.578405000) scheduler( 9944) gstoptimalscheduler.c(2797):gst_opt_scheduler_iterate:<GstOptScheduler@0x83f0868> in error state
+ Trace 55454
Thread 3 (Thread -1236538448 (LWP 9973))
Can you provide a sample .vob of a few MB for me to reproduce this?
I don't see why this happens. The two groups run independently. This did happen with a very old core (before http://cvs.freedesktop.org/gstreamer/gstreamer/gst/schedulers/gstoptimalscheduler.c?r1=1.102&r2=1.103 was committed), but frame #9 claims otherwise. OK, so logically, we have .. ! dvddemux ! dtsdec ! .. as a pipeline, where dtsdec is the start of a new group. This group is scheduled in frame 8, when calling schedule_group (group=0x848f920). It calls pull(), which gets data from the previous group through its output srcpad (on dvddemux). However, this, for some reason, thinks that dvddemux belongs to the group of dtsdec, given the warning ** (totem:9944): WARNING **: deadlock detected, disabling group 0x848f920 (note that the pointer is the same!). That implies a bug in group setup, or a bug in dtsdec when it pulls from the pad. Dtsdec at that point (it's been rewritten since; good job Jan!) seems ok, so group setup must be bad. Wim, any idea why it thinks that dvddemux' srcpad-parent (i.e. dvddemux) belongs to the same group as dtsdec?
This is no longer relevant since dtsdec was rewritten. Will reopen if another element triggers it.