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

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri May 13 05:43:07 PDT 2011


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





--- Comment #18 from Alexis Menard <alexis.menard at openbossa.org>  2011-05-13 05:43:07 PST ---
(In reply to comment #17)
> 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).

Folks from the Qt port (yes we also use MediaPlayerGstreamer) can also reproduce that one.

-- 
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