[Webkit-unassigned] [Bug 58548] [Gtk+] deadlock in gstreamer video player when exiting fullscreen

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed May 11 13:12:40 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=58548





--- Comment #17 from Jonathon Jongsma (jonner) <jonathon at quotidian.org>  2011-05-11 13:12:40 PST ---
No, I still get deadlocks, and I even got a crash as well

One thing that seems worth noting.  it seems that there might be some sort of bad interaction between seeking and fullscreening a video.  For example, if I go to this page http://devfiles.myopera.com/articles/1891/custom-controls-webm-360p.html (and enable the media controls via the right-click menu), then I have the following results:

- If I don't seek at all, I can fullscreen/un-fullscreen repeatedly with no problems, although it's worth noting that I do get some critical warnings on the terminal when I enable fullscreen: 
  (GtkLauncher:10127): GStreamer-CRITICAL **: gst_event_new_new_segment_full: assertion `position != -1' failed
  (GtkLauncher:10127): GStreamer-CRITICAL **: gst_pad_push_event: assertion `event != NULL' failed

- As soon as I seek within the video, the next time I try to enable fullscreen mode, bad things happen.  

In one case, it aborted due to a failed assert:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff4d97581 in WebCore::HTMLMediaElement::enterFullscreen (this=0x1555250) at ../../Source/WebCore/html/HTMLMediaElement.cpp:2518
2518        ASSERT(!m_isFullscreen);
(gdb) bt 
#0  0x00007ffff4d97581 in WebCore::HTMLMediaElement::enterFullscreen (this=0x1555250) at ../../Source/WebCore/html/HTMLMediaElement.cpp:2518
#1  0x00007ffff4df9fbd in WebCore::MediaControlFullscreenButtonElement::defaultEventHandler (this=0x173a3f0, event=0x12f8d10)
    at ../../Source/WebCore/html/shadow/MediaControlElements.cpp:805
#2  0x00007ffff4c0c31b in WebCore::EventDispatcher::dispatchEvent (this=0x7fffffffd4b0, event=...)
    at ../../Source/WebCore/dom/EventDispatcher.cpp:345
#3  0x00007ffff4c1d24b in WebCore::MouseEventDispatchMediator::dispatchEvent (this=0x7fffffffd540, dispatcher=0x7fffffffd4b0)
    at ../../Source/WebCore/dom/MouseEvent.cpp:176
#4  0x00007ffff4c0ad35 in WebCore::EventDispatcher::dispatchEvent (node=0x173a3f0, mediator=...)
    at ../../Source/WebCore/dom/EventDispatcher.cpp:60
#5  0x00007ffff4c2aa21 in WebCore::Node::dispatchMouseEvent (this=0x173a3f0, event=..., eventType=..., detail=1, relatedTarget=0x0)
    at ../../Source/WebCore/dom/Node.cpp:2840
#6  0x00007ffff4f8664e in WebCore::EventHandler::dispatchMouseEvent (this=0x7fffe000b808, eventType=..., targetNode=0x173a3f0, clickCount=1, 
    mouseEvent=..., setUnder=true) at ../../Source/WebCore/page/EventHandler.cpp:2010
#7  0x00007ffff4f84ff7 in WebCore::EventHandler::handleMouseReleaseEvent (this=0x7fffe000b808, mouseEvent=...)
    at ../../Source/WebCore/page/EventHandler.cpp:1714
#8  0x00007ffff48ea86f in webkit_web_view_button_release_event (widget=0x6f0350, event=0x16d72a0)
    at ../../Source/WebKit/gtk/webkit/webkitwebview.cpp:814
#9  0x00007ffff3a7c6a8 in _gtk_marshal_BOOLEAN__BOXED (closure=0x699670, return_value=0x7fffffffd980, n_param_values=<value optimized out>, 
    param_values=0x17de0d0, invocation_hint=<value optimized out>, marshal_data=<value optimized out>)
    at /scratch/build-area/gtk+3.0-3.0.8/./gtk/gtkmarshalers.c:85
#10 0x00007ffff17f1e7e in g_closure_invoke (closure=0x699670, return_value=0x7fffffffd980, n_param_values=2, param_values=0x17de0d0, 
    invocation_hint=0x7fffffffd940) at /tmp/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767
#11 0x00007ffff18036e8 in signal_emit_unlocked_R (node=<value optimized out>, detail=0, instance=0x6f0350, emission_return=0x7fffffffdaf0, 
    instance_and_params=0x17de0d0) at /tmp/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3290
#12 0x00007ffff180caa5 in g_signal_emit_valist (instance=<value optimized out>, signal_id=<value optimized out>, 
    detail=<value optimized out>, var_args=<value optimized out>) at /tmp/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2993
#13 0x00007ffff180ced3 in g_signal_emit (instance=<value optimized out>, signal_id=<value optimized out>, detail=<value optimized out>)
    at /tmp/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040
#14 0x00007ffff3ba237f in gtk_widget_event_internal (widget=0x6f0350, event=0x16d72a0)
    at /scratch/build-area/gtk+3.0-3.0.8/./gtk/gtkwidget.c:6098
#15 0x00007ffff3a7befa in gtk_propagate_event (widget=0x6f0350, event=0x16d72a0) at /scratch/build-area/gtk+3.0-3.0.8/./gtk/gtkmain.c:2597
#16 0x00007ffff3a7c2cb in gtk_main_do_event (event=0x16d72a0) at /scratch/build-area/gtk+3.0-3.0.8/./gtk/gtkmain.c:1872
#17 0x00007ffff36f7832 in gdk_event_source_dispatch (source=<value optimized out>, callback=<value optimized out>, 
    user_data=<value optimized out>) at /scratch/build-area/gtk+3.0-3.0.8/./gdk/x11/gdkeventsource.c:318
#18 0x00007ffff0f274a3 in g_main_dispatch (context=0x63eb20) at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:2440
#19 g_main_context_dispatch (context=0x63eb20) at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:3013
#20 0x00007ffff0f27c80 in g_main_context_iterate (context=0x63eb20, block=1, dispatch=1, self=<value optimized out>)
    at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:3091
#21 0x00007ffff0f282f2 in g_main_loop_run (loop=0xb1e280) at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:3299


In another instance, the video stopped updating completely, but the audio kept playing (and the current playing position also kept updating).

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list