WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
198567
[GStreamer] Crash in MediaPlayerPrivateGStreamerBase::ensureGstGLContext
https://bugs.webkit.org/show_bug.cgi?id=198567
Summary
[GStreamer] Crash in MediaPlayerPrivateGStreamerBase::ensureGstGLContext
Michael Catanzaro
Reported
2019-06-05 08:52:10 PDT
MediaPlayerPrivateGStreamerBase::ensureGstGLContext is currently a guaranteed crash because it expects PlatformDisplay::sharedDisplayForCompositing() to return a PlatformDisplayLibWPE if compiled with USE(WPE_RENDERER), but PlatformDisplayLibWPE has lower precedence than PlatformDisplayX11 and PlatformDisplayWayland. When running our layout tests with run-webkit-tests --gtk, it's guaranteed to be a PlatformDisplayX11. I think Carlos was clearly expecting PlatformDisplayLibWPE, so I don't know what the ideal desired behavior is, but the crashes go away if we change the code to allow any type of PlatformDisplay. This should hopefully fix our bots, which are still exiting early.
Attachments
Patch
(3.04 KB, patch)
2019-06-05 08:56 PDT
,
Michael Catanzaro
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Michael Catanzaro
Comment 1
2019-06-05 08:54:54 PDT
BTW, it's very unclear from the crash on the release bots: Thread 1 (Thread 0x7f9040ff9700 (LWP 4838)): #0 _g_log_abort () at ../../Source/glib-2.58.1/glib/gmessages.c:557 #1 0x00007f914c979485 in g_logv () at ../../Source/glib-2.58.1/glib/gmessages.c:1371 #2 0x00007f914c9795d2 in g_log () at ../../Source/glib-2.58.1/glib/gmessages.c:1413 #3 0x00007f914d8a348d in gst_caps_unref () at ../../Source/gstreamer-1.16.0/gst/gstcaps.h:223 #4 gst_base_transform_default_query () at ../../Source/gstreamer-1.16.0/libs/gst/base/gstbasetransform.c:1552 #5 0x00007f914d7a2b48 in gst_pad_query () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:4071 #6 0x00007f914d7a3121 in gst_pad_peer_query () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:4203 #7 0x00007f914d7df464 in gst_pad_peer_query_caps () at ../../Source/gstreamer-1.16.0/gst/gstutils.c:3107 #8 0x00007f914d8a381c in gst_base_transform_query_caps () at ../../Source/gstreamer-1.16.0/libs/gst/base/gstbasetransform.c:678 #9 gst_base_transform_default_query () at ../../Source/gstreamer-1.16.0/libs/gst/base/gstbasetransform.c:1550 #10 0x00007f914d7a2b48 in gst_pad_query () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:4071 #11 0x00007f914d7a3121 in gst_pad_peer_query () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:4203 #12 0x00007f914d7d9bd8 in query_caps_func () at ../../Source/gstreamer-1.16.0/gst/gstutils.c:2765 #13 0x00007f914d7a175e in gst_pad_forward () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:3008 #14 0x00007f914d7dc672 in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.0/gst/gstutils.c:2815 #15 0x00007f914d7a1a50 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:3187 #16 gst_pad_query_default () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:3415 #17 0x00007f914d7a2b48 in gst_pad_query () at ../../Source/gstreamer-1.16.0/gst/gstpad.c:4071 #18 0x00007f914d7dce24 in gst_pad_query_caps () at ../../Source/gstreamer-1.16.0/gst/gstutils.c:3061 #19 0x00007f90f858b998 in autoplug_continue_cb () at ../../Source/gst-plugins-base-1.16.0/gst/playback/gstplaybin2.c:4538 #20 0x00007f914a0298ee in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #21 0x00007f914a0292bf in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #22 0x00007f914ca543d8 in g_cclosure_marshal_generic () at ../../Source/glib-2.58.1/gobject/gclosure.c:1496 #23 0x00007f914ca53bc5 in g_closure_invoke () at ../../Source/glib-2.58.1/gobject/gclosure.c:810 #24 0x00007f914ca66752 in signal_emit_unlocked_R () at ../../Source/glib-2.58.1/gobject/gsignal.c:3635 #25 0x00007f914ca6eeb8 in g_signal_emit_valist () at ../../Source/glib-2.58.1/gobject/gsignal.c:3401 #26 0x00007f914ca6f842 in g_signal_emit () at ../../Source/glib-2.58.1/gobject/gsignal.c:3447 #27 0x00007f90f8570815 in proxy_autoplug_continue_signal () at ../../Source/gst-plugins-base-1.16.0/gst/playback/gsturidecodebin.c:1691 #28 0x00007f914a0298ee in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #29 0x00007f914a0292bf in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #30 0x00007f914ca543d8 in g_cclosure_marshal_generic () at ../../Source/glib-2.58.1/gobject/gclosure.c:1496 #31 0x00007f914ca53bc5 in g_closure_invoke () at ../../Source/glib-2.58.1/gobject/gclosure.c:810 #32 0x00007f914ca66752 in signal_emit_unlocked_R () at ../../Source/glib-2.58.1/gobject/gsignal.c:3635 #33 0x00007f914ca6eeb8 in g_signal_emit_valist () at ../../Source/glib-2.58.1/gobject/gsignal.c:3401 #34 0x00007f914ca6f842 in g_signal_emit () at ../../Source/glib-2.58.1/gobject/gsignal.c:3447 #35 0x00007f90f8565e0f in analyze_new_pad () at ../../Source/gst-plugins-base-1.16.0/gst/playback/gstdecodebin2.c:1598 #36 0x00007f90f8566be5 in type_found () at ../../Source/gst-plugins-base-1.16.0/gst/playback/gstdecodebin2.c:2883 #37 0x00007f914a0298ee in ffi_call_unix64 () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #38 0x00007f914a0292bf in ffi_call () from /usr/lib/x86_64-linux-gnu/libffi.so.6 #39 0x00007f914ca543d8 in g_cclosure_marshal_generic () at ../../Source/glib-2.58.1/gobject/gclosure.c:1496 #40 0x00007f914ca53bc5 in g_closure_invoke () at ../../Source/glib-2.58.1/gobject/gclosure.c:810 #41 0x00007f914ca66752 in signal_emit_unlocked_R () at ../../Source/glib-2.58.1/gobject/gsignal.c:3635 #42 0x00007f914ca6f435 in g_signal_emit_valist () at ../../Source/glib-2.58.1/gobject/gsignal.c:3391 #43 0x00007f914ca6f842 in g_signal_emit () at ../../Source/glib-2.58.1/gobject/gsignal.c:3447 #44 0x00007f90f83e0676 in gst_type_find_element_loop () at ../../Source/gstreamer-1.16.0/plugins/elements/gsttypefindelement.c:1169 #45 0x00007f914d7d12d1 in gst_task_func () at ../../Source/gstreamer-1.16.0/gst/gsttask.c:328 #46 0x00007f914c99b3be in g_thread_pool_thread_proxy () at ../../Source/glib-2.58.1/glib/gthreadpool.c:307 #47 0x00007f914c99a9e5 in g_thread_proxy () at ../../Source/glib-2.58.1/glib/gthread.c:784 #48 0x00007f914d192fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486 #49 0x00007f914b8774cf in clone () from /lib/x86_64-linux-gnu/libc.so.6 But I *guess* that's somehow indirectly caused because we clobber m_glDisplay here. At least the first crashing test is now passing for me locally with this change.
Michael Catanzaro
Comment 2
2019-06-05 08:56:07 PDT
Created
attachment 371401
[details]
Patch
WebKit Commit Bot
Comment 3
2019-06-05 09:41:12 PDT
Comment on
attachment 371401
[details]
Patch Clearing flags on attachment: 371401 Committed
r246107
: <
https://trac.webkit.org/changeset/246107
>
WebKit Commit Bot
Comment 4
2019-06-05 09:41:13 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug