Bug 219277
| Summary: | [GStreamer] Crash in gst_gl_insert_debug_marker | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
| Component: | Media | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | Normal | CC: | mcatanzaro, pnormand |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Michael Catanzaro
I hit this crash on https://www.vox.com/policy-and-politics/21562986/president-joe-biden-health-care-plan-obamacare-medicaid using Tech Preview with 2.30.2. Sadly it's not reproducible.
#0 gst_gl_insert_debug_marker (context=0x0,
format=format@entry=0x7f8080f43e82 "starting element %s")
at ../gst-libs/gst/gl/gstgldebug.c:387
387 const GstGLFuncs *gl = context->gl_vtable;
[Current thread is 1 (Thread 0x7f7e89ffb700 (LWP 196))]
(gdb) bt full
#0 gst_gl_insert_debug_marker
(context=0x0, format=format@entry=0x7f8080f43e82 "starting element %s")
at ../gst-libs/gst/gl/gstgldebug.c:387
gl = <optimized out>
string = 0x7f7e400c6f28 ""
len = <optimized out>
args =
{{gp_offset = 1074259696, fp_offset = 32638, overflow_arg_area = 0x76373da359000e00, reg_save_area = 0x7f7e400c6b70}}
#1 0x00007f8080f0fcca in gst_gl_base_filter_gl_start
(context=<optimized out>, data=<optimized out>)
at ../gst-libs/gst/gl/gstglbasefilter.c:283
filter = 0x564cd4391580 [GstGLUploadElement]
filter_class = 0x564cd438c740
#2 0x00007f8080f387f7 in _run_message_sync (message=0x7f7e4f7fb590)
at ../gst-libs/gst/gl/gstglwindow.c:573
#3 0x00007f8080f38796 in _run_message_async (message=0x7f7df86d05a0)
at ../gst-libs/gst/gl/gstglwindow.c:640
#4 0x00007f808373518f in g_main_dispatch (context=0x7f7e480024a0)
at ../glib/gmain.c:3325
dispatch = 0x7f80837313b0 <g_idle_dispatch>
prev_source = 0x0
begin_time_nsec = 0
was_in_call = 0
user_data = 0x7f7df86d05a0
callback = 0x7f8080f38780 <_run_message_async>
cb_funcs = <optimized out>
cb_data = 0x7f7df86d3f40
need_destroy = <optimized out>
source = 0x7f7df8004c70
current = 0x7f7e4004ef40
i = 0
__func__ = "g_main_dispatch"
#5 g_main_context_dispatch (context=0x7f7e480024a0) at ../glib/gmain.c:4043
#6 0x00007f8083735538 in g_main_context_iterate (context=0x7f7e480024a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4119
max_priority = 2147483647
timeout = -1
some_ready = 1
nfds = <optimized out>
allocated_nfds = <optimized out>
fds = 0x7f7e480021e0
#7 0x00007f8083735853 in g_main_loop_run (loop=0x7f7e4800dae0) at ../glib/gmain.c:4317
__func__ = "g_main_loop_run"
#8 0x00007f8080f38889 in gst_gl_window_default_run (window=0x7f7e1c0061a0 [GstGLDummyWindow]) at ../gst-libs/gst/gl/gstglwindow.c:499
priv = 0x7f7e1c006170
#9 0x00007f8080f1aba8 in gst_gl_context_create_thread (context=0x564cd3b01700 [GstGLContextEGL]) at ../gst-libs/gst/gl/gstglcontext.c:1305
context_class = 0x7f7e6800c020
window_class = 0x7f7e6800ee90
compiled_api = 65539
user_api = <optimized out>
gl_api = <optimized out>
display_api = <optimized out>
api_string = <optimized out>
compiled_api_s = 0x7f7e4800ff00 "gl_CurrentAttribVertMESA"
user_api_s = 0x7f7e480021e0 "9"
display_api_s = 0x7f7e40007760 "bvec2"
user_choice = <optimized out>
error = 0x7f7e8a7f9c80
other_context = 0x564cd3b62190 [GstGLWrappedContext]
__func__ = "gst_gl_context_create_thread"
#10 0x00007f808375f251 in g_thread_proxy (data=0x7f7e680124c0) at ../glib/gthread.c:820
thread = 0x7f7e680124c0
__func__ = "g_thread_proxy"
#11 0x00007f80817524d2 in start_thread (arg=<optimized out>) at pthread_create.c:477
ret = <optimized out>
pd = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140181457843968, -399663332442784368, 140181466225358, 140181466225359, 140181457841472, 8396800, 326809689419398544, 393254332188704144}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = 0
#12 0x00007f8083c5f2a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Philippe Normand
I assume this is gst 1.16, right?
We had similar crashes in the bots iirc, until we vendored this patch: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/7e2073000a82a1e3361ac806ea698d2cf7ff0a30 which won't be backported to 1.16. So either update your runtime to 1.18, or include that patch.
Philippe Normand
I assume this is gst 1.16, right?
We had similar crashes in the bots iirc, until we vendored this patch: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/7e2073000a82a1e3361ac806ea698d2cf7ff0a30 which won't be backported to 1.16. So either update your runtime to 1.18, or include that patch.
Michael Catanzaro
freedesktop-sdk 20.08 includes GStreamer 1.16, yes. And GNOME 40 will be based on 20.08, so that means we'll stick with GStreamer 1.16 until GNOME 41. GStreamer developers are well aware of freedesktop-sdk and GNOME release cycle when setting their schedule....
We could backport it downstream, sure, but that would leave all distros broken. (Note: freedesktop-sdk has a ridiculous rule that no new APIs can be added, but we can make those new APIs internal when backporting.) If it fixes crashes, why won't it be backported upstream?
Anyway, thanks for looking into it.
Michael Catanzaro
The new APIs actually include Since: 1.16 tags. :P