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 600479 - Deadlock when playing movie with subtitles
Deadlock when playing movie with subtitles
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.10.26
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 597198 599970 601940 603914 604653 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-11-02 21:43 UTC by Robin Stocker
Modified: 2009-12-16 22:36 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
decodebin2: Protect subtitle elements and subtitle encoding by a new mutex (5.25 KB, patch)
2009-11-06 14:15 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Robin Stocker 2009-11-02 21:43:01 UTC
I just encountered a deadlock (totem hanging) when playing a movie with SRT subtitles using git master of all gstreamer modules. It's possible that bug #597198 is related.

Here's the stack trace:

  • #0 __kernel_vsyscall
  • #1 __lll_lock_wait
    from /lib/tls/i686/cmov/libpthread.so.0
  • #2 _L_lock_752
    from /lib/tls/i686/cmov/libpthread.so.0
  • #3 pthread_mutex_lock
    from /lib/tls/i686/cmov/libpthread.so.0
  • #4 gst_object_get_parent
    at gstobject.c line 830
  • #5 gst_object_dispatch_properties_changed
    at gstobject.c line 527
  • #6 g_object_notify_dispatcher
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 326
  • #7 g_object_notify_queue_thaw
    at /build/buildd/glib2.0-2.22.2/gobject/gobjectnotifyqueue.c line 120
  • #8 IA__g_object_set_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1482
  • #9 IA__g_object_set
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1582
  • #10 gst_decode_bin_set_subs_encoding
    at gstdecodebin2.c line 984
  • #11 gst_decode_bin_set_property
    at gstdecodebin2.c line 1017
  • #12 object_set_property
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 968
  • #13 IA__g_object_set_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1476
  • #14 IA__g_object_set
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1582
  • #15 gst_uri_decode_bin_set_encoding
    at gsturidecodebin.c line 519
  • #16 gst_uri_decode_bin_set_property
    at gsturidecodebin.c line 550
  • #17 object_set_property
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 968
  • #18 IA__g_object_set_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1476
  • #19 IA__g_object_set
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1582
  • #20 gst_play_bin_set_encoding
    at gstplaybin2.c line 1546
  • #21 gst_play_bin_set_property
    at gstplaybin2.c line 1600
  • #22 object_set_property
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 968
  • #23 IA__g_object_set_valist
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1476
  • #24 IA__g_object_set
    at /build/buildd/glib2.0-2.22.2/gobject/gobject.c line 1582
  • #25 bacon_video_widget_set_subtitle_encoding
    at bacon-video-widget-gst-0.10.c line 3935
  • #26 encoding_changed_cb
    at totem-preferences.c line 489
  • #27 ??
    from /usr/lib/libgconf-2.so.4
  • #28 gconf_listeners_notify
    from /usr/lib/libgconf-2.so.4
  • #29 ??
    from /usr/lib/libgconf-2.so.4
  • #30 ??
    from /usr/lib/libgconf-2.so.4
  • #31 g_idle_dispatch
    at /build/buildd/glib2.0-2.22.2/glib/gmain.c line 4065
  • #32 g_main_dispatch
    at /build/buildd/glib2.0-2.22.2/glib/gmain.c line 1960
  • #33 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.22.2/glib/gmain.c line 2513
  • #34 g_main_context_iterate
    at /build/buildd/glib2.0-2.22.2/glib/gmain.c line 2591
  • #35 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.22.2/glib/gmain.c line 2799
  • #36 IA__gtk_main
    at /build/buildd/gtk+2.0-2.18.3/gtk/gtkmain.c line 1218
  • #37 main
    at totem.c line 278

Comment 1 Sebastian Dröge (slomo) 2009-11-06 14:15:40 UTC
Created attachment 147099 [details] [review]
decodebin2: Protect subtitle elements and subtitle encoding by a new mutex

Using the object lock here can and will lead to deadlocks because
of deep-notifies of property changes: the deep-notify handler will
get the parent of objects, which will take the object lock again.

Fixes bug #600479.
Comment 2 Sebastian Dröge (slomo) 2009-11-06 14:18:20 UTC
*** Bug 597198 has been marked as a duplicate of this bug. ***
Comment 3 Sebastian Dröge (slomo) 2009-11-06 14:19:09 UTC
*** Bug 599970 has been marked as a duplicate of this bug. ***
Comment 4 Bastien Nocera 2009-11-15 12:09:06 UTC
*** Bug 601940 has been marked as a duplicate of this bug. ***
Comment 5 Bastien Nocera 2009-12-07 11:12:50 UTC
*** Bug 603914 has been marked as a duplicate of this bug. ***
Comment 6 Bastien Nocera 2009-12-16 01:15:14 UTC
*** Bug 604653 has been marked as a duplicate of this bug. ***
Comment 7 Cristian Aravena Romero 2009-12-16 22:36:51 UTC
For my work fine patch see:

https://bugs.edge.launchpad.net/gstreamer/+bug/441396/comments/79