Bug 210498 - [GStreamer] GL context is accessed after finalized in WebKitGLVideo bin
Summary: [GStreamer] GL context is accessed after finalized in WebKitGLVideo bin
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Alicia Boya García
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-04-14 08:23 PDT by Diego Pino
Modified: 2020-06-23 09:15 PDT (History)
7 users (show)

See Also:


Attachments
Media source tests crashes logs (124.92 KB, application/gzip)
2020-04-14 08:23 PDT, Diego Pino
no flags Details
mediasource-trackdefault.html crash stacktrace (115.38 KB, text/plain)
2020-04-14 08:28 PDT, Diego Pino
no flags Details
Patch (25.17 KB, patch)
2020-06-23 05:08 PDT, Alicia Boya García
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Pino 2020-04-14 08:23:42 PDT
Created attachment 396419 [details]
Media source tests crashes logs

The following tests reported two or more recent crashes (last 4000 revisions):

  imported/w3c/web-platform-tests/media-source/mediasource-closed.html 4 crashes
  imported/w3c/web-platform-tests/media-source/mediasource-config-change-mp4-av-video-bitrate.html 2 crashes
  imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html 1 crash
  imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-framesize.html 1 crash
  imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-av-video-bitrate.html 4 crashes
  imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html 5 crashes
  imported/w3c/web-platform-tests/media-source/mediasource-liveseekable.html 2 crashes

Check out the attached file for a list the stacktraces per test.
Comment 1 Diego Pino 2020-04-14 08:28:46 PDT
Created attachment 396420 [details]
mediasource-trackdefault.html crash stacktrace

Stracktrace for imported/w3c/web-platform-tests/media-source/mediasource-trackdefault.html (crashed on r259858)
Comment 2 Diego Pino 2020-04-15 01:25:06 PDT
imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible.html has crashed in the EWS GTK-WK2 bot several times.

See: https://ews-build.webkit-uat.org/results/GTK-WK2-Tests-EWS/r396444-608-rerun/imported/w3c/web-platform-tests/media-source/mediasource-video-is-visible-crash-log.txt

Stacktrace:

Thread 1 (Thread 0x7fdb97fef700 (LWP 22992)):
#0  gst_gl_insert_debug_marker () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstgldebug.c:387
#1  0x00007fdcf4365c63 in gst_gl_base_filter_gl_start () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglbasefilter.c:283
#2  0x00007fdcf438cd43 in _run_message_sync () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:573
#3  0x00007fdcf438cce2 in _run_message_async () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:640
#4  0x00007fdcf24a26b8 in g_main_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3182
#5  g_main_context_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3847
#6  0x00007fdcf24a2a78 in g_main_context_iterate () at ../../Source/glib-2.58.1/glib/gmain.c:3920
#7  0x00007fdcf24a2d62 in g_main_loop_run () at ../../Source/glib-2.58.1/glib/gmain.c:4116
#8  0x00007fdcf438cdc5 in gst_gl_window_default_run () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:499
#9  0x00007fdcf43706a0 in gst_gl_context_create_thread () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglcontext.c:1305
#10 0x00007fdcf24c9d45 in g_thread_proxy () at ../../Source/glib-2.58.1/glib/gthread.c:784
#11 0x00007fdcf53b9fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#12 0x00007fdcf202a4cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 3 Diego Pino 2020-04-15 01:44:09 PDT
Another related test reported by the EWS GTK-WK2 bot:

imported/w3c/web-platform-tests/media-source/mediasource-sourcebufferlist.html

See: https://ews-build.webkit-uat.org/results/GTK-WK2-Tests-EWS/r396191-478-rerun/imported/w3c/web-platform-tests/media-source/mediasource-sourcebufferlist-crash-log.txt

Stacktrace:

Thread 1 (Thread 0x7f6492ffd700 (LWP 70188)):
#0  gst_gl_insert_debug_marker () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstgldebug.c:387
#1  0x00007f6581ac9c63 in gst_gl_base_filter_gl_start () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglbasefilter.c:283
#2  0x00007f6581af0d43 in _run_message_sync () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:573
#3  0x00007f6581af0ce2 in _run_message_async () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:640
#4  0x00007f657fc066b8 in g_main_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3182
#5  g_main_context_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3847
#6  0x00007f657fc06a78 in g_main_context_iterate () at ../../Source/glib-2.58.1/glib/gmain.c:3920
#7  0x00007f657fc06d62 in g_main_loop_run () at ../../Source/glib-2.58.1/glib/gmain.c:4116
#8  0x00007f6581af0dc5 in gst_gl_window_default_run () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:499
#9  0x00007f6581ad46a0 in gst_gl_context_create_thread () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglcontext.c:1305
#10 0x00007f657fc2dd45 in g_thread_proxy () at ../../Source/glib-2.58.1/glib/gthread.c:784
#11 0x00007f6582b1dfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#12 0x00007f657f78e4cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 4 Diego Pino 2020-04-15 02:33:33 PDT
media/media-source/media-source-restrictions.html crashed in r260072 with a similar stacktrace

See: https://build.webkit.org/results/GTK%20Linux%2064-bit%20Release%20(Tests)/r260072%20(13331)/media/media-source/media-source-restrictions-crash-log.txt
 
Thread 1 (Thread 0x7f8c067fc700 (LWP 20039)):
#0  0x00007f8cbdb54243 in gst_gl_upload_transform_caps () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglupload.c:1810
#1  gst_gl_upload_transform_caps () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglupload.c:1783
#2  0x00007f8cbdeac751 in gst_base_transform_transform_caps () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:474
#3  0x00007f8cbdeb028c in gst_base_transform_query_caps () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:695
#4  gst_base_transform_default_query () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:1550
#5  0x00007f8cbddafc40 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#6  0x00007f8cbddb039b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4204
#7  0x00007f8cbdde68b8 in query_caps_func () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2765
#8  0x00007f8cbddae80e in gst_pad_forward () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3008
#9  0x00007f8cbdde937a in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2815
#10 0x00007f8cbddae9f4 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3187
#11 gst_pad_query_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3415
#12 0x00007f8cbddafc40 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#13 0x00007f8cbddb039b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4204
#14 0x00007f8cbdde68b8 in query_caps_func () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2765
#15 0x00007f8cbddae80e in gst_pad_forward () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3008
#16 0x00007f8cbdde937a in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2815
#17 0x00007f8cbddae9f4 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3187
#18 gst_pad_query_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3415
#19 0x00007f8cbddafc40 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#20 0x00007f8cbdde9b34 in gst_pad_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:3061
#21 0x00007f8c69fce22a in gst_play_sink_convert_bin_getcaps () at ../../Source/gst-plugins-base-1.16.1/gst/playback/gstplaysinkconvertbin.c:446
#22 gst_play_sink_convert_bin_query () at ../../Source/gst-plugins-base-1.16.1/gst/playback/gstplaysinkconvertbin.c:507
#23 gst_play_sink_convert_bin_query () at ../../Source/gst-plugins-base-1.16.1/gst/playback/gstplaysinkconvertbin.c:496
#24 0x00007f8cbddafc40 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#25 0x00007f8cbddb039b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4204
#26 0x00007f8cbdde68b8 in query_caps_func () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2765
#27 0x00007f8cbddae80e in gst_pad_forward () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3008
#28 0x00007f8cbdde937a in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2815
#29 0x00007f8cbddae9f4 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3187
Comment 5 Diego Pino 2020-04-15 05:16:13 PDT
Another related test reported by the EWS GTK-WK2 bot:

fast/mediastream/delayed-permission-denied-crash-log.txt

See: https://ews-build.webkit-uat.org/results/GTK-WK2-Tests-EWS/r396230-493-rerun/fast/mediastream/delayed-permission-denied-crash-log.txt

Stacktrace:

Thread 1 (Thread 0x7ff315ffb700 (LWP 99540)):
#0  gst_gl_insert_debug_marker () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstgldebug.c:387
#1  0x00007ff386fa9c63 in gst_gl_base_filter_gl_start () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglbasefilter.c:283
#2  0x00007ff386fd0d43 in _run_message_sync () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:573
#3  0x00007ff386fd0ce2 in _run_message_async () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:640
#4  0x00007ff3850e66b8 in g_main_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3182
#5  g_main_context_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3847
#6  0x00007ff3850e6a78 in g_main_context_iterate () at ../../Source/glib-2.58.1/glib/gmain.c:3920
#7  0x00007ff3850e6d62 in g_main_loop_run () at ../../Source/glib-2.58.1/glib/gmain.c:4116
#8  0x00007ff386fd0dc5 in gst_gl_window_default_run () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglwindow.c:499
#9  0x00007ff386fb46a0 in gst_gl_context_create_thread () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglcontext.c:1305
#10 0x00007ff38510dd45 in g_thread_proxy () at ../../Source/glib-2.58.1/glib/gthread.c:784
#11 0x00007ff387ffdfa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#12 0x00007ff384c6e4cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 6 Diego Pino 2020-04-15 06:05:04 PDT
Another similar crash:

  media/media-source/media-source-sequence-timestamps.html

See: https://ews-build.webkit-uat.org/results/GTK-WK2-Tests-EWS/r396499-645/media/media-source/media-source-sequence-timestamps-crash-log.txt

Thread 1 (Thread 0x7f4f2f7fe700 (LWP 38172)):
#0  0x00007f4fb71a1233 in gst_gl_upload_transform_caps () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglupload.c:1810
#1  gst_gl_upload_transform_caps () at ../../Source/gst-plugins-base-1.16.1/gst-libs/gst/gl/gstglupload.c:1783
#2  0x00007f4fb74f9751 in gst_base_transform_transform_caps () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:474
#3  0x00007f4fb74fcf4b in gst_base_transform_query_caps () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:650
#4  gst_base_transform_default_query () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:1550
#5  0x00007f4fb73fcc30 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#6  0x00007f4fb73fd38b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4204
#7  0x00007f4fb74338a8 in query_caps_func () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2765
#8  0x00007f4fb73fb7fe in gst_pad_forward () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3008
#9  0x00007f4fb743636a in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2815
#10 0x00007f4fb73fb9e4 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3187
#11 gst_pad_query_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3415
#12 0x00007f4fb73fcc30 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#13 0x00007f4fb73fd38b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4204
#14 0x00007f4fb74338a8 in query_caps_func () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2765
#15 0x00007f4fb73fb7fe in gst_pad_forward () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3008
#16 0x00007f4fb743636a in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2815
#17 0x00007f4fb73fb9e4 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3187
#18 gst_pad_query_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3415
#19 0x00007f4fb73fcc30 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#20 0x00007f4fb73fd38b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4204
#21 0x00007f4fb74338a8 in query_caps_func () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2765
#22 0x00007f4fb73fb7fe in gst_pad_forward () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3008
#23 0x00007f4fb743636a in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:2815
#24 0x00007f4fb73fb9e4 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3187
#25 gst_pad_query_default () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:3415
#26 0x00007f4fb73fcc30 in gst_pad_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4072
#27 0x00007f4fb73fd38b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.1/gst/gstpad.c:4204
#28 0x00007f4fb7439104 in gst_pad_peer_query_caps () at ../../Source/gstreamer-1.16.1/gst/gstutils.c:3107
#29 0x00007f4fb74fd0ae in gst_base_transform_query_caps () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:678
#30 gst_base_transform_default_query () at ../../Source/gstreamer-1.16.1/libs/gst/base/gstbasetransform.c:1550
Comment 7 Alicia Boya García 2020-05-21 13:40:09 PDT
Similar tracebacks are popping randomly from lots of media tests, no matter if regular playback, MSE or WebRTC. The common theme seems to be use after deletion of a GstGLContext, possibly related with GLVideoSinkGstreamer or PlatformDisplayGStreamer.

Either some code that should be holding a (refcounted) reference is not doing so, or another code is releasing theirs when it shouldn't.

gst_structure_set (s, "context", GST_TYPE_GL_CONTEXT, gl_context, NULL);
STDERR: g_object_ref: assertion 'object->ref_count > 0' failed

#0  _g_log_abort () at ../../Source/glib-2.58.1/glib/gmessages.c:557
#1  0x00007fdee745d6f6 in g_logv () at ../../Source/glib-2.58.1/glib/gmessages.c:1371
#2  0x00007fdee745d8b2 in g_log () at ../../Source/glib-2.58.1/glib/gmessages.c:1413
#3  0x00007fdee753b80a in g_object_ref () at ../../Source/glib-2.58.1/gobject/gobject.c:3213
#4  g_object_ref () at ../../Source/glib-2.58.1/gobject/gobject.c:3207
#5  0x00007fdee753b918 in g_value_object_collect_value () at ../../Source/glib-2.58.1/gobject/gobject.c:3840
#6  0x00007fdee7d65a26 in gst_structure_set_valist_internal () at ../../Source/gstreamer-1.16.2/gst/gststructure.c:631
#7  0x00007fdee7d66c79 in gst_structure_set () at ../../Source/gstreamer-1.16.2/gst/gststructure.c:663
#8  0x00007fdee7ae6bf5 in gst_gl_handle_context_query () at ../../Source/gst-plugins-base-1.16.2/gst-libs/gst/gl/gstglutils.c:550
#9  0x00007fdee7ac5081 in gst_gl_base_filter_query () at ../../Source/gst-plugins-base-1.16.2/gst-libs/gst/gl/gstglbasefilter.c:224
#10 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#11 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#12 0x00007fdee7ae5d82 in pad_query () at ../../Source/gst-plugins-base-1.16.2/gst-libs/gst/gl/gstglutils.c:108
#13 0x00007fdee7d32c94 in gst_iterator_fold () at ../../Source/gstreamer-1.16.2/gst/gstiterator.c:617
#14 0x00007fdee7ae5ee6 in gst_gl_run_query () at ../../Source/gst-plugins-base-1.16.2/gst-libs/gst/gl/gstglutils.c:136
#15 0x00007fdee7ae6da5 in gst_gl_query_local_gl_context () at ../../Source/gst-plugins-base-1.16.2/gst-libs/gst/gl/gstglutils.c:591
#16 0x00007fdee7ac501b in _find_local_gl_context () at ../../Source/gst-plugins-base-1.16.2/gst-libs/gst/gl/gstglbasefilter.c:197
#17 0x00007fdee7ac52e5 in gst_gl_base_filter_find_gl_context () at ../../Source/gst-plugins-base-1.16.2/gst-libs/gst/gl/gstglbasefilter.c:432
#18 0x00007fde681ddb74 in gst_gl_color_convert_element_transform_caps () at ../../Source/gst-plugins-base-1.16.2/ext/gl/gstglcolorconvertelement.c:145
#19 0x00007fdee7e417b1 in gst_base_transform_transform_caps () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:474
#20 0x00007fdee7e45415 in gst_base_transform_query_caps () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:695
#21 gst_base_transform_default_query () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:1550
#22 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#23 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#24 0x00007fdee7d80854 in gst_pad_peer_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:3107
#25 0x00007fdee7e4530f in gst_base_transform_query_caps () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:678
#26 gst_base_transform_default_query () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:1550
#27 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#28 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#29 0x00007fdee7d7ae78 in query_caps_func () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2765
#30 0x00007fdee7d42f9e in gst_pad_forward () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3008
#31 0x00007fdee7d7d9ea in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2815
#32 0x00007fdee7d43194 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3187
#33 gst_pad_query_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3415
#34 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#35 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#36 0x00007fdee7d7ae78 in query_caps_func () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2765
#37 0x00007fdee7d42f9e in gst_pad_forward () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3008
#38 0x00007fdee7d7d9ea in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2815
#39 0x00007fdee7d43194 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3187
#40 gst_pad_query_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3415
#41 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#42 0x00007fdee7d7e274 in gst_pad_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:3061
#43 0x00007fde946d483a in gst_play_sink_convert_bin_getcaps () at ../../Source/gst-plugins-base-1.16.2/gst/playback/gstplaysinkconvertbin.c:446
#44 gst_play_sink_convert_bin_query () at ../../Source/gst-plugins-base-1.16.2/gst/playback/gstplaysinkconvertbin.c:507
#45 gst_play_sink_convert_bin_query () at ../../Source/gst-plugins-base-1.16.2/gst/playback/gstplaysinkconvertbin.c:496
#46 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#47 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#48 0x00007fdee7d7ae78 in query_caps_func () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2765
#49 0x00007fdee7d42f9e in gst_pad_forward () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3008
#50 0x00007fdee7d7d9ea in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2815
#51 0x00007fdee7d43194 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3187
#52 gst_pad_query_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3415
#53 0x00007fde9464792d in gst_queue_handle_sink_query () at ../../Source/gstreamer-1.16.2/plugins/elements/gstqueue.c:1079
#54 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#55 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#56 0x00007fdee7d7ae78 in query_caps_func () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2765
#57 0x00007fdee7d42f9e in gst_pad_forward () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3008
#58 0x00007fdee7d7d9ea in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2815
#59 0x00007fdee7d43194 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3187
#60 gst_pad_query_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3415
#61 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#62 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#63 0x00007fdee7d7ae78 in query_caps_func () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2765
#64 0x00007fdee7d42f9e in gst_pad_forward () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3008
#65 0x00007fdee7d7d9ea in gst_pad_proxy_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:2815
#66 0x00007fdee7d43194 in gst_pad_query_caps_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3187
#67 gst_pad_query_default () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:3415
#68 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#69 0x00007fdee7d44b6b in gst_pad_peer_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4204
#70 0x00007fdee7d80854 in gst_pad_peer_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:3107
#71 0x00007fde68173c0c in gst_deinterlace_getcaps () at ../../Source/gst-plugins-good-1.16.2/gst/deinterlace/gstdeinterlace.c:2463
#72 gst_deinterlace_sink_query () at ../../Source/gst-plugins-good-1.16.2/gst/deinterlace/gstdeinterlace.c:3114
#73 0x00007fdee7d44438 in gst_pad_query () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4072
#74 0x00007fdee7d7e274 in gst_pad_query_caps () at ../../Source/gstreamer-1.16.2/gst/gstutils.c:3061
#75 0x00007fdee7e43707 in gst_base_transform_find_transform () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:1123
#76 gst_base_transform_setcaps () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:1309
#77 0x00007fdee7e446c4 in gst_base_transform_reconfigure () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:1422
#78 gst_base_transform_reconfigure () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:1405
#79 0x00007fdee7e44853 in default_submit_input_buffer () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:1987
#80 0x00007fdee7e40c82 in gst_base_transform_chain () at ../../Source/gstreamer-1.16.2/libs/gst/base/gstbasetransform.c:2287
#81 0x00007fdee7d3c94f in gst_pad_chain_data_unchecked () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4327
#82 0x00007fdee7d3ea41 in gst_pad_push_data () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4583
#83 0x00007fdee7d45623 in gst_pad_push () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4702
#84 0x00007fdee7d2a993 in gst_proxy_pad_chain_default () at ../../Source/gstreamer-1.16.2/gst/gstghostpad.c:127
#85 0x00007fdee7d3c94f in gst_pad_chain_data_unchecked () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4327
#86 0x00007fdee7d3ea41 in gst_pad_push_data () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4583
#87 0x00007fdee7d45623 in gst_pad_push () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4702
#88 0x00007fde946d8bcc in gst_stream_synchronizer_sink_chain () at ../../Source/gst-plugins-base-1.16.2/gst/playback/gststreamsynchronizer.c:814
#89 0x00007fdee7d3c94f in gst_pad_chain_data_unchecked () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4327
#90 0x00007fdee7d3ea41 in gst_pad_push_data () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4583
#91 0x00007fdee7d45623 in gst_pad_push () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4702
#92 0x00007fdee7d2a993 in gst_proxy_pad_chain_default () at ../../Source/gstreamer-1.16.2/gst/gstghostpad.c:127
#93 0x00007fdee7d3c94f in gst_pad_chain_data_unchecked () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4327
#94 0x00007fdee7d3ea41 in gst_pad_push_data () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4583
#95 0x00007fdee7d45623 in gst_pad_push () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4702
#96 0x00007fde9461a94f in gst_concat_sink_chain () at ../../Source/gstreamer-1.16.2/plugins/elements/gstconcat.c:456
#97 0x00007fdee7d3c94f in gst_pad_chain_data_unchecked () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4327
#98 0x00007fdee7d3ea41 in gst_pad_push_data () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4583
#99 0x00007fdee7d45623 in gst_pad_push () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4702
#100 0x00007fdee7d2a993 in gst_proxy_pad_chain_default () at ../../Source/gstreamer-1.16.2/gst/gstghostpad.c:127
#101 0x00007fdee7d3c94f in gst_pad_chain_data_unchecked () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4327
#102 0x00007fdee7d3ea41 in gst_pad_push_data () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4583
#103 0x00007fdee7d45623 in gst_pad_push () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4702
#104 0x00007fdee7d2a993 in gst_proxy_pad_chain_default () at ../../Source/gstreamer-1.16.2/gst/gstghostpad.c:127
#105 0x00007fdee7d3c94f in gst_pad_chain_data_unchecked () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4327
#106 0x00007fdee7d3ea41 in gst_pad_push_data () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4583
#107 0x00007fdee7d45623 in gst_pad_push () at ../../Source/gstreamer-1.16.2/gst/gstpad.c:4702
#108 0x00007fde9463787c in gst_single_queue_push_one () at ../../Source/gstreamer-1.16.2/plugins/elements/gstmultiqueue.c:1639
#109 gst_multi_queue_loop () at ../../Source/gstreamer-1.16.2/plugins/elements/gstmultiqueue.c:1959
#110 0x00007fdee7d722ef in gst_task_func () at ../../Source/gstreamer-1.16.2/gst/gsttask.c:328
#111 0x00007fdee747e4e4 in g_thread_pool_thread_proxy () at ../../Source/glib-2.58.1/glib/gthreadpool.c:307
#112 0x00007fdee747db65 in g_thread_proxy () at ../../Source/glib-2.58.1/glib/gthread.c:784
#113 0x00007fdee84634e2 in start_thread (arg=<optimized out>) at pthread_create.c:479
#114 0x00007fdee61326a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 8 Xabier Rodríguez Calvar 2020-05-21 22:59:29 PDT
I wonder if bug 198830 could be related to this program as well.
Comment 9 Alicia Boya García 2020-05-22 13:01:55 PDT
GLVideoSink is a bin formed by three elements: glupload -> glcolorconvert -> appsink

webKitGLVideoSinkChangeState() creates and sets a gst.gl.app_context GstContext for the whole bin which is spread to its children on transition to READY (which conveniently happens before the transition to READY of its children).

Despite this, this is not the GstContext that ends up being used in glupload and glcolorconvert:

0:00:02.627938702   428 0x5633c3a42e40 DEBUG      webkitglvideosink GLVideoSinkGStreamer.cpp:212:webKitGLVideoSinkChangeState:<webkitglvideosink2> Created and set my own GstGLContext: 0x5633c3d71e40 context 'gst.gl.app_context'='context, context=(GstGLContext)"\(GstGLWrappedContext\)\ glwrappedcontext0";'
0:00:02.682009809   428 0x7fc98c00d800 DEBUG                glutils gstglutils.c:554:gst_gl_handle_context_query:<glcolorconvertelement2> successfully set GL context <glcontextglx3> on context query: 0x7fca34002370, GstQueryContext, context-type=(string)gst.gl.local_context, context=(GstContext)NULL;

In fact, I added lots of ref() calls to WebKitGLVideoSink's GstContext and the crash was reproducible with the same message, so the context hitting ref_count == 0 while remaining in use has to be a different one.
Comment 10 Alicia Boya García 2020-05-31 15:47:36 PDT
(In reply to Alicia Boya García from comment #9)
> In fact, I added lots of ref() calls to WebKitGLVideoSink's GstContext and
> the crash was reproducible with the same message, so the context hitting
> ref_count == 0 while remaining in use has to be a different one.

I confirmed it's not indeed the same GstContext, but this is no big deal because creating a new GstContext containing the same GL context is normal and often necessary: e.g. a "gst.gl.local_context" query has to be replied with a "gst.gl.local_context" GstContext, a "gst.gl.app_context" GstContext would not do it, even if they contain the same actual GL context. gst_gl_handle_context_query() does exactly this.

BUT (and I didn't notice this at first) the refcount problem is NOT with the GstContext, but with the GstGLContext, which is a different structure, with the *actual* GL context.

There is still the question of why this GL context is being deleted prematurely 
while being in use though, see the following two threads:

Thread 2 (Thread 0x7f904cb302c0 (LWP 1274)):
#0  0x00007f904da77f8d in syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f904edba283 in g_cond_wait (cond=0x7f77e001f1d8, mutex=0x7f77e001f1c0) at ../glib/gthread-posix.c:1540
#2  0x00007f904f40161d in gst_gl_context_finalize (object=0x7f77e001f220 [GstGLContextGLX]) at ../gst-libs/gst/gl/gstglcontext.c:674
#3  0x00007f904ee5dd6e in g_object_unref (_object=<optimized out>) at ../gobject/gobject.c:3499
#4  0x00007f904ee5dd6e in g_object_unref (_object=0x7f77e001f220) at ../gobject/gobject.c:3391
#5  0x00007f904f6453b5 in gst_object_unref (object=<optimized out>) at ../gst/gstobject.c:266
#6  0x00007f904f3f89c4 in gst_gl_base_filter_reset (filter=0x559b8bce6110 [GstGLUploadElement|gluploadelement56]) at ../gst-libs/gst/gl/gstglbasefilter.c:250
#7  0x00007f904f3f89c4 in gst_gl_base_filter_stop (bt=0x559b8bce6110 [GstGLUploadElement|gluploadelement56]) at ../gst-libs/gst/gl/gstglbasefilter.c:266
#8  0x00007f904f799c16 in gst_base_transform_activate (trans=trans@entry=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], active=active@entry=0) at ../libs/gst/base/gstbasetransform.c:2445
#9  0x00007f904f799cf5 in gst_base_transform_sink_activate_mode (pad=<optimized out>, mode=GST_PAD_MODE_PUSH, active=0, parent=0x559b8bce6110 [GstGLUploadElement|gluploadelement56]) at ../libs/gst/base/gstbasetransform.c:2465
#10 0x00007f904f799cf5 in gst_base_transform_sink_activate_mode (pad=<optimized out>, parent=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], mode=<optimized out>, active=0) at ../libs/gst/base/gstbasetransform.c:2454
#11 0x00007f904f692a9a in activate_mode_internal (pad=pad@entry=0x7f77200e6340 [GstPad|sink], parent=parent@entry=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], mode=mode@entry=GST_PAD_MODE_PUSH, active=active@entry=0) at ../gst/gstpad.c:1217
#12 0x00007f904f693665 in gst_pad_set_active (pad=pad@entry=0x7f77200e6340 [GstPad|sink], active=0) at ../gst/gstpad.c:1115
#13 0x00007f904f66e455 in activate_pads (vpad=<optimized out>, ret=0x7ffddf0adb30, active=0x7ffddf0adb8c) at ../gst/gstelement.c:3040
#14 0x00007f904f68313c in gst_iterator_fold (it=it@entry=0x559b8b5622b0, func=func@entry=0x7f904f66e430 <activate_pads>, ret=ret@entry=0x7ffddf0adb30, user_data=user_data@entry=0x7ffddf0adb8c) at ../gst/gstiterator.c:617
#15 0x00007f904f66ee86 in iterator_activate_fold_with_resync (iter=iter@entry=0x559b8b5622b0, user_data=user_data@entry=0x7ffddf0adb8c, func=0x7f904f66e430 <activate_pads>) at ../gst/gstelement.c:3064
#16 0x00007f904f670f7e in gst_element_pads_activate (element=element@entry=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], active=<optimized out>, active@entry=0) at ../gst/gstelement.c:3108
#17 0x00007f904f6711b1 in gst_element_change_state_func (element=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], transition=<optimized out>) at ../gst/gstelement.c:3174
#18 0x00007f904f3f87df in gst_gl_base_filter_change_state (element=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst-libs/gst/gl/gstglbasefilter.c:386
#19 0x00007f90083b8075 in gst_gl_upload_element_change_state (element=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../ext/gl/gstgluploadelement.c:295
#20 0x00007f904f6733f2 in gst_element_change_state (element=element@entry=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:2952
#21 0x00007f904f673b39 in gst_element_set_state_func (element=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], state=GST_STATE_READY) at ../gst/gstelement.c:2906
#22 0x00007f904f650ca8 in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=23612742846799 [6:33:32.742846799], element=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], bin=0x559b8bcb6040 [WebKitGLVideoSink|webkitglvideosink56]) at ../gst/gstbin.c:2605
#23 0x00007f904f650ca8 in gst_bin_change_state_func (element=0x559b8bcb6040 [WebKitGLVideoSink|webkitglvideosink56], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2947
#24 0x00007f906803e097 in webKitGLVideoSinkChangeState(GstElement*, GstStateChange) (element=0x559b8bcb6040 [WebKitGLVideoSink|webkitglvideosink56], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:221
#25 0x00007f904f6733f2 in gst_element_change_state (element=element@entry=0x559b8bcb6040 [WebKitGLVideoSink|webkitglvideosink56], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:2952
#26 0x00007f904f673b39 in gst_element_set_state_func (element=0x559b8bcb6040 [WebKitGLVideoSink|webkitglvideosink56], state=GST_STATE_READY) at ../gst/gstelement.c:2906
#27 0x00007f904f650ca8 in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=23612742846799 [6:33:32.742846799], element=0x559b8bcb6040 [WebKitGLVideoSink|webkitglvideosink56], bin=0x559b8bcf8070 [GstFPSDisplaySink|sink]) at ../gst/gstbin.c:2605
#28 0x00007f904f650ca8 in gst_bin_change_state_func (element=0x559b8bcf8070 [GstFPSDisplaySink|sink], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2947
#29 0x00007f900837839c in fps_display_sink_change_state (element=0x559b8bcf8070 [GstFPSDisplaySink|sink], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/debugutils/fpsdisplaysink.c:663
#30 0x00007f904f6733f2 in gst_element_change_state (element=element@entry=0x559b8bcf8070 [GstFPSDisplaySink|sink], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:2952
#31 0x00007f904f673b39 in gst_element_set_state_func (element=0x559b8bcf8070 [GstFPSDisplaySink|sink], state=GST_STATE_READY) at ../gst/gstelement.c:2906
#32 0x00007f904f650ca8 in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=23612742846799 [6:33:32.742846799], element=0x559b8bcf8070 [GstFPSDisplaySink|sink], bin=0x7f7720084ad0 [GstBin|vbin]) at ../gst/gstbin.c:2605
#33 0x00007f904f650ca8 in gst_bin_change_state_func (element=0x7f7720084ad0 [GstBin|vbin], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2947
#34 0x00007f904f6733f2 in gst_element_change_state (element=element@entry=0x7f7720084ad0 [GstBin|vbin], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:2952
#35 0x00007f904f673b39 in gst_element_set_state_func (element=0x7f7720084ad0 [GstBin|vbin], state=GST_STATE_READY) at ../gst/gstelement.c:2906
#36 0x00007f904f650ca8 in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=23612742846799 [6:33:32.742846799], element=0x7f7720084ad0 [GstBin|vbin], bin=0x559b8b9861e0 [GstPlaySink|playsink]) at ../gst/gstbin.c:2605
#37 0x00007f904f650ca8 in gst_bin_change_state_func (element=0x559b8b9861e0 [GstPlaySink|playsink], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2947
#38 0x00007f90087c0d00 in gst_play_sink_change_state (element=0x559b8b9861e0 [GstPlaySink|playsink], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/playback/gstplaysink.c:4979
#39 0x00007f904f6733f2 in gst_element_change_state (element=element@entry=0x559b8b9861e0 [GstPlaySink|playsink], transition=transition@entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:2952
#40 0x00007f904f673b39 in gst_element_set_state_func (element=0x559b8b9861e0 [GstPlaySink|playsink], state=GST_STATE_READY) at ../gst/gstelement.c:2906
#41 0x00007f904f650ca8 in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0 [0:00:00.000000000], base_time=23612742846799 [6:33:32.742846799], element=0x559b8b9861e0 [GstPlaySink|playsink], bin=0x559b8b82b640 [GstPlayBin3|mediastream-56]) at ../gst/gstbin.c:2605
#42 0x00007f904f650ca8 in gst_bin_change_state_func (element=0x559b8b82b640 [GstPlayBin3|mediastream-56], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstbin.c:2947
#43 0x00007f90087bb12c in gst_play_bin3_change_state (element=0x559b8b82b640 [GstPlayBin3|mediastream-56], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/playback/gstplaybin3.c:4943
#44 0x00007f904f6733f2 in gst_element_change_state (element=element@entry=0x559b8b82b640 [GstPlayBin3|mediastream-56], transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../gst/gstelement.c:2952
#45 0x00007f904f673e28 in gst_element_continue_state (element=element@entry=0x559b8b82b640 [GstPlayBin3|mediastream-56], ret=ret@entry=GST_STATE_CHANGE_NO_PREROLL) at ../gst/gstelement.c:2660
#46 0x00007f904f6734ef in gst_element_change_state (element=element@entry=0x559b8b82b640 [GstPlayBin3|mediastream-56], transition=transition@entry=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at ../gst/gstelement.c:2998
#47 0x00007f904f673b39 in gst_element_set_state_func (element=0x559b8b82b640 [GstPlayBin3|mediastream-56], state=GST_STATE_NULL) at ../gst/gstelement.c:2906
#48 0x00007f9068048330 in WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer() (this=0x7f77b43cf3c0, __in_chrg=<optimized out>) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:304
#49 0x00007f90680486d4 in WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer() (this=0x7f77b43cf3c0, __in_chrg=<optimized out>) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:307
#50 0x00007f906738f4c0 in std::default_delete<WebCore::MediaPlayerPrivateInterface>::operator()(WebCore::MediaPlayerPrivateInterface*) const (this=0x7f90080a2288, __ptr=0x7f77b43cf3c0) at /usr/include/c++/9.3.0/bits/unique_ptr.h:81
#51 0x00007f906738da36 in std::unique_ptr<WebCore::MediaPlayerPrivateInterface, std::default_delete<WebCore::MediaPlayerPrivateInterface> >::~unique_ptr() (this=0x7f90080a2288, __in_chrg=<optimized out>) at /usr/include/c++/9.3.0/bits/unique_ptr.h:292
#52 0x00007f906737ebb6 in WebCore::MediaPlayer::~MediaPlayer() (this=0x7f90080a2240, __in_chrg=<optimized out>) at ../../Source/WebCore/platform/graphics/MediaPlayer.cpp:411
#53 0x00007f906737ebf2 in WebCore::MediaPlayer::~MediaPlayer() (this=0x7f90080a2240, __in_chrg=<optimized out>) at ../../Source/WebCore/platform/graphics/MediaPlayer.cpp:414
#54 0x00007f9063f2d358 in std::default_delete<WebCore::MediaPlayer>::operator()(WebCore::MediaPlayer*) const (this=0x7ffddf0ae827, __ptr=0x7f90080a2240) at /usr/include/c++/9.3.0/bits/unique_ptr.h:81
#55 0x00007f9063f27278 in WTF::RefCounted<WebCore::MediaPlayer, std::default_delete<WebCore::MediaPlayer> >::deref() const (this=0x7f90080a2248) at DerivedSources/ForwardingHeaders/wtf/RefCounted.h:190
#56 0x00007f9063f24f32 in WTF::derefIfNotNull<WebCore::MediaPlayer>(WebCore::MediaPlayer*) (ptr=0x7f90080a2240) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:44
#57 0x00007f9063f20c40 in WTF::RefPtr<WebCore::MediaPlayer, WTF::DumbPtrTraits<WebCore::MediaPlayer> >::~RefPtr() (this=0x7ffddf0ae8a0, __in_chrg=<optimized out>) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:70
#58 0x00007f9063f223c9 in WTF::RefPtr<WebCore::MediaPlayer, WTF::DumbPtrTraits<WebCore::MediaPlayer> >::operator=<WebCore::MediaPlayer>(WTF::Ref<WebCore::MediaPlayer, WTF::DumbPtrTraits<WebCore::MediaPlayer> >&&) (this=0x7f9001a46c48, reference=...) at DerivedSources/ForwardingHeaders/wtf/RefPtr.h:181
#59 0x00007f90669f05be in WebCore::HTMLMediaElement::createMediaPlayer() (this=0x7f9001a46610) at ../../Source/WebCore/html/HTMLMediaElement.cpp:6594
#60 0x00007f90669d998a in WebCore::HTMLMediaElement::prepareForLoad() (this=0x7f9001a46610) at ../../Source/WebCore/html/HTMLMediaElement.cpp:1156
#61 0x00007f90669d9299 in WebCore::HTMLMediaElement::setSrcObject(WTF::Optional<WTF::Variant<WTF::RefPtr<WebCore::MediaStream, WTF::DumbPtrTraits<WebCore::MediaStream> >, WTF::RefPtr<WebCore::MediaSource, WTF::DumbPtrTraits<WebCore::MediaSource> >, WTF::RefPtr<WebCore::Blob, WTF::DumbPtrTraits<WebCore::Blob> > > >&&) (this=0x7f9001a46610, mediaProvider=...) at ../../Source/WebCore/html/HTMLMediaElement.cpp:1057
#62 0x00007f906534c9c1 in WebCore::<lambda()>::operator()(void) const (__closure=0x7ffddf0aea70) at DerivedSources/WebCore/JSHTMLMediaElement.cpp:611
#63 0x00007f90653589bc in WebCore::AttributeSetter::call<WebCore::setJSHTMLMediaElementSrcObjectSetter(JSC::JSGlobalObject&, WebCore::JSHTMLMediaElement&, JSC::JSValue, JSC::ThrowScope&)::<lambda()> >(JSC::JSGlobalObject &, JSC::ThrowScope &, WebCore::<lambda()> &&) (functor=...) at ../../Source/WebCore/bindings/js/JSDOMAttribute.h:97
#64 0x00007f906534ca65 in WebCore::setJSHTMLMediaElementSrcObjectSetter(JSC::JSGlobalObject&, WebCore::JSHTMLMediaElement&, JSC::JSValue, JSC::ThrowScope&) (lexicalGlobalObject=..., thisObject=..., value=..., throwScope=...) at DerivedSources/WebCore/JSHTMLMediaElement.cpp:610
#65 0x00007f9065358ad4 in WebCore::IDLAttribute<WebCore::JSHTMLMediaElement>::set<WebCore::setJSHTMLMediaElementSrcObjectSetter>(JSC::JSGlobalObject&, JSC::EncodedJSValue, JSC::EncodedJSValue, char const*) (lexicalGlobalObject=..., thisValue=140152103305360, encodedValue=2, attributeName=0x7f9069dc3c9b "srcObject") at ../../Source/WebCore/bindings/js/JSDOMAttribute.h:50
#66 0x00007f906534cac2 in WebCore::setJSHTMLMediaElementSrcObject(JSC::JSGlobalObject*, long, long) (lexicalGlobalObject=0x7f77b45cafc0, thisValue=140152103305360, encodedValue=2) at DerivedSources/WebCore/JSHTMLMediaElement.cpp:618
#67 0x00007f90552c3b65 in JSC::callCustomSetter(JSC::JSGlobalObject*, bool (*)(JSC::JSGlobalObject*, long, long), bool, JSC::JSValue, JSC::JSValue) (globalObject=0x7f77b45cafc0, setter=0x7f906534ca93 <WebCore::setJSHTMLMediaElementSrcObject(JSC::JSGlobalObject*, long, long)>, isAccessor=true, thisValue=..., value=...) at ../../Source/JavaScriptCore/runtime/CustomGetterSetter.cpp:41
#68 0x00007f90552c3c1d in JSC::callCustomSetter(JSC::JSGlobalObject*, JSC::JSValue, bool, JSC::JSObject*, JSC::JSValue, JSC::JSValue) (globalObject=0x7f77b45cafc0, customGetterSetter=..., isAccessor=true, base=0x7f90084d70c0, thisValue=..., value=...) at ../../Source/JavaScriptCore/runtime/CustomGetterSetter.cpp:58
#69 0x00007f90553ffa37 in JSC::JSObject::putInlineSlow(JSC::JSGlobalObject*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&) (this=0x7f77b4550090, globalObject=0x7f77b45cafc0, propertyName=..., value=..., slot=...) at ../../Source/JavaScriptCore/runtime/JSObject.cpp:823
#70 0x00007f90549c0f23 in JSC::JSObject::putInlineForJSObject(JSC::JSCell*, JSC::JSGlobalObject*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&) (cell=0x7f77b4550090, globalObject=0x7f77b45cafc0, propertyName=..., value=..., slot=...) at ../../Source/JavaScriptCore/runtime/JSObjectInlines.h:270
#71 0x00007f90549b9ad8 in JSC::JSCell::putInline(JSC::JSGlobalObject*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&) (this=0x7f77b4550090, globalObject=0x7f77b45cafc0, propertyName=..., value=..., slot=...) at ../../Source/JavaScriptCore/runtime/JSCellInlines.h:394
#72 0x00007f90549bbc91 in JSC::JSValue::putInline(JSC::JSGlobalObject*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&) (this=0x7ffddf0aeeb8, globalObject=0x7f77b45cafc0, propertyName=..., value=..., slot=...) at ../../Source/JavaScriptCore/runtime/JSCJSValueInlines.h:1073
#73 0x00007f90550baa94 in JSC::LLInt::llint_slow_path_put_by_id(JSC::CallFrame*, JSC::Instruction const*) (callFrame=0x7ffddf0af040, pc=0x7f900809dbd7) at ../../Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:898
#74 0x00007f9054074a99 in llint_op_put_by_id () at /app/webkit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:97
#75 0x0000000000000000 in  ()

Thread 1 (Thread 0x7f772effd700 (LWP 1846)):
#0  0x00007f904ed72ee5 in _g_log_abort (breakpoint=1) at ../glib/gmessages.c:554
#1  0x00007f904ed741c9 in g_logv (log_domain=0x7f904ee8a2f7 "GLib-GObject", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7f772effa6c0) at ../glib/gmessages.c:1373
#2  0x00007f904ed74393 in g_log (log_domain=log_domain@entry=0x7f904ee8a2f7 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x7f904edc577f "%s: assertion '%s' failed") at ../glib/gmessages.c:1415
#3  0x00007f904ed74b8d in g_return_if_fail_warning (log_domain=log_domain@entry=0x7f904ee8a2f7 "GLib-GObject", pretty_function=pretty_function@entry=0x7f904ee8d978 <__func__.15604> "g_object_ref", expression=expression@entry=0x7f904ee8c715 "old_val > 0") at ../glib/gmessages.c:2771
#4  0x00007f904ee5d9fa in g_object_ref (_object=0x7f77e001f220) at ../gobject/gobject.c:3368
#5  0x00007f904ee5d9fa in g_object_ref (_object=0x7f77e001f220) at ../gobject/gobject.c:3360
#6  0x00007f904ee5db08 in g_value_object_collect_value (value=0x7f772effa7d8, n_collect_values=<optimized out>, collect_values=<optimized out>, collect_flags=<optimized out>) at ../gobject/gobject.c:4007
#7  0x00007f904f6b7a46 in gst_structure_set_valist_internal (structure=0x559b8b7cc540, fieldname=<optimized out>, varargs=varargs@entry=0x7f772effa880) at ../gst/gststructure.c:631
#8  0x00007f904f6b8dc6 in gst_structure_set (structure=structure@entry=0x559b8b7cc540, field=field@entry=0x7f904f430a19 "context") at ../gst/gststructure.c:663
#9  0x00007f904f41b8e5 in gst_gl_handle_context_query (element=element@entry=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], query=query@entry=0x7f7720054d90 [GstQuery], display=<optimized out>, gl_context=0x7f77e001f220 [GstGLContextGLX|glcontextglx59], other_context=<optimized out>) at ../gst-libs/gst/gl/gstglutils.c:550
#10 0x00007f904f3f8b1b in gst_gl_base_filter_query (trans=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], direction=GST_PAD_SRC, query=0x7f7720054d90 [GstQuery]) at ../gst-libs/gst/gl/gstglbasefilter.c:224
#11 0x00007f904f695238 in gst_pad_query (pad=pad@entry=0x7f7714090860 [GstPad|src], query=query@entry=0x7f7720054d90 [GstQuery]) at ../gst/gstpad.c:4072
#12 0x00007f904f69599b in gst_pad_peer_query (pad=pad@entry=0x7f771407d8f0 [GstPad|sink], query=query@entry=0x7f7720054d90 [GstQuery]) at ../gst/gstpad.c:4204
#13 0x00007f904f41a9b6 in pad_query (item=<optimized out>, value=0x7f772effabc0, user_data=0x7f7720054d90) at ../gst-libs/gst/gl/gstglutils.c:108
#14 0x00007f904f68313c in gst_iterator_fold (it=it@entry=0x7f7708003800, func=func@entry=0x7f904f41a990 <pad_query>, ret=ret@entry=0x7f772effabc0, user_data=user_data@entry=0x7f7720054d90) at ../gst/gstiterator.c:617
#15 0x00007f904f41ab26 in gst_gl_run_query (element=<optimized out>, query=query@entry=0x7f7720054d90 [GstQuery], direction=direction@entry=GST_PAD_SINK) at ../gst-libs/gst/gl/gstglutils.c:136
#16 0x00007f904f41babd in gst_gl_query_local_gl_context (element=0x559b8bce6480 [GstGLColorConvertElement|glcolorconvertelement56], direction=direction@entry=GST_PAD_SINK, context_ptr=context_ptr@entry=0x559b8bce66c8) at ../gst-libs/gst/gl/gstglutils.c:591
#17 0x00007f904f3f864e in _find_local_gl_context (filter=0x559b8bce6480 [GstGLColorConvertElement|glcolorconvertelement56]) at ../gst-libs/gst/gl/gstglbasefilter.c:197
#18 0x00007f904f3f8df5 in gst_gl_base_filter_find_gl_context (filter=0x559b8bce6480 [GstGLColorConvertElement|glcolorconvertelement56]) at ../gst-libs/gst/gl/gstglbasefilter.c:432
#19 0x00007f90083b94b1 in gst_gl_color_convert_element_transform_caps (bt=0x559b8bce6480 [GstGLColorConvertElement|glcolorconvertelement56], direction=GST_PAD_SRC, caps=0x7f76f00082d0 [GstCaps], filter=0x7f76f0008140 [GstCaps]) at ../ext/gl/gstglcolorconvertelement.c:145
#20 0x00007f904f797e71 in gst_base_transform_transform_caps (trans=trans@entry=0x559b8bce6480 [GstGLColorConvertElement|glcolorconvertelement56], direction=GST_PAD_SRC, caps=caps@entry=0x7f76f00082d0 [GstCaps], filter=filter@entry=0x7f76f0008140 [GstCaps]) at ../libs/gst/base/gstbasetransform.c:474
#21 0x00007f904f79bce5 in gst_base_transform_query_caps (filter=0x7f76f0008140 [GstCaps], pad=0x7f771407d8f0 [GstPad|sink], trans=0x559b8bce6480 [GstGLColorConvertElement|glcolorconvertelement56]) at ../libs/gst/base/gstbasetransform.c:695
#22 0x00007f904f79bce5 in gst_base_transform_default_query (trans=0x559b8bce6480 [GstGLColorConvertElement|glcolorconvertelement56], direction=<optimized out>, query=0x7f76f00081e0 [GstQuery]) at ../libs/gst/base/gstbasetransform.c:1550
#23 0x00007f904f695238 in gst_pad_query (pad=pad@entry=0x7f771407d8f0 [GstPad|sink], query=query@entry=0x7f76f00081e0 [GstQuery]) at ../gst/gstpad.c:4072
#24 0x00007f904f69599b in gst_pad_peer_query (pad=pad@entry=0x7f7714090860 [GstPad|src], query=query@entry=0x7f76f00081e0 [GstQuery]) at ../gst/gstpad.c:4204
#25 0x00007f904f6d39dc in gst_pad_peer_query_caps (pad=pad@entry=0x7f7714090860 [GstPad|src], filter=filter@entry=0x7f76f0008140 [GstCaps]) at ../gst/gstutils.c:3107
#26 0x00007f904f79ba54 in gst_base_transform_query_caps (filter=0x7f7708023800 [GstCaps], pad=0x7f77200e6340 [GstPad|sink], trans=0x559b8bce6110 [GstGLUploadElement|gluploadelement56]) at ../libs/gst/base/gstbasetransform.c:678
#27 0x00007f904f79ba54 in gst_base_transform_default_query (trans=0x559b8bce6110 [GstGLUploadElement|gluploadelement56], direction=<optimized out>, query=0x7f76f0008190 [GstQuery]) at ../libs/gst/base/gstbasetransform.c:1550
#28 0x00007f904f695238 in gst_pad_query (pad=pad@entry=0x7f77200e6340 [GstPad|sink], query=query@entry=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:4072
#29 0x00007f904f69599b in gst_pad_peer_query (pad=pad@entry=0x7f77200e5140 [GstProxyPad|proxypad1190], query=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:4204
#30 0x00007f904f6cdd3c in query_caps_func (pad=pad@entry=0x7f77200e5140 [GstProxyPad|proxypad1190], data=data@entry=0x7f772effb1f0) at ../gst/gstutils.c:2765
#31 0x00007f904f693d2e in gst_pad_forward (pad=pad@entry=0x559b8b98cab0 [GstGhostPad|sink], forward=forward@entry=0x7f904f6cdd10 <query_caps_func>, user_data=user_data@entry=0x7f772effb1f0) at ../gst/gstpad.c:3008
#32 0x00007f904f6d0a6a in gst_pad_proxy_query_caps (pad=pad@entry=0x559b8b98cab0 [GstGhostPad|sink], query=query@entry=0x7f76f0008190 [GstQuery]) at ../gst/gstutils.c:2815
#33 0x00007f904f693f58 in gst_pad_query_caps_default (query=0x7f76f0008190 [GstQuery], pad=0x559b8b98cab0 [GstGhostPad|sink]) at ../gst/gstpad.c:3187
#34 0x00007f904f693f58 in gst_pad_query_default (pad=0x559b8b98cab0 [GstGhostPad|sink], parent=<optimized out>, query=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:3415
#35 0x00007f904f695238 in gst_pad_query (pad=pad@entry=0x559b8b98cab0 [GstGhostPad|sink], query=query@entry=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:4072
#36 0x00007f904f69599b in gst_pad_peer_query (pad=pad@entry=0x7f771408c7c0 [GstProxyPad|proxypad1191], query=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:4204
#37 0x00007f904f6cdd3c in query_caps_func (pad=pad@entry=0x7f771408c7c0 [GstProxyPad|proxypad1191], data=data@entry=0x7f772effb4c0) at ../gst/gstutils.c:2765
#38 0x00007f904f693d2e in gst_pad_forward (pad=pad@entry=0x559b8b98cd30 [GstGhostPad|sink], forward=forward@entry=0x7f904f6cdd10 <query_caps_func>, user_data=user_data@entry=0x7f772effb4c0) at ../gst/gstpad.c:3008
#39 0x00007f904f6d0a6a in gst_pad_proxy_query_caps (pad=pad@entry=0x559b8b98cd30 [GstGhostPad|sink], query=query@entry=0x7f76f0008190 [GstQuery]) at ../gst/gstutils.c:2815
#40 0x00007f904f693f58 in gst_pad_query_caps_default (query=0x7f76f0008190 [GstQuery], pad=0x559b8b98cd30 [GstGhostPad|sink]) at ../gst/gstpad.c:3187
#41 0x00007f904f693f58 in gst_pad_query_default (pad=0x559b8b98cd30 [GstGhostPad|sink], parent=<optimized out>, query=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:3415
#42 0x00007f904f695238 in gst_pad_query (pad=pad@entry=0x559b8b98cd30 [GstGhostPad|sink], query=query@entry=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:4072
#43 0x00007f904f69599b in gst_pad_peer_query (pad=pad@entry=0x7f771405e460 [GstGhostPad|src], query=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:4204
#44 0x00007f904f6cdd3c in query_caps_func (pad=pad@entry=0x7f771405e460 [GstGhostPad|src], data=data@entry=0x7f772effb790) at ../gst/gstutils.c:2765
#45 0x00007f904f693d2e in gst_pad_forward (pad=pad@entry=0x7f771408d600 [GstProxyPad|proxypad1203], forward=forward@entry=0x7f904f6cdd10 <query_caps_func>, user_data=user_data@entry=0x7f772effb790) at ../gst/gstpad.c:3008
#46 0x00007f904f6d0a6a in gst_pad_proxy_query_caps (pad=pad@entry=0x7f771408d600 [GstProxyPad|proxypad1203], query=query@entry=0x7f76f0008190 [GstQuery]) at ../gst/gstutils.c:2815
#47 0x00007f904f693f58 in gst_pad_query_caps_default (query=0x7f76f0008190 [GstQuery], pad=0x7f771408d600 [GstProxyPad|proxypad1203]) at ../gst/gstpad.c:3187
#48 0x00007f904f693f58 in gst_pad_query_default (pad=0x7f771408d600 [GstProxyPad|proxypad1203], parent=<optimized out>, query=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:3415
#49 0x00007f904f695238 in gst_pad_query (pad=pad@entry=0x7f771408d600 [GstProxyPad|proxypad1203], query=query@entry=0x7f76f0008190 [GstQuery]) at ../gst/gstpad.c:4072
#50 0x00007f904f6d130c in gst_pad_query_caps (pad=pad@entry=0x7f771408d600 [GstProxyPad|proxypad1203], filter=filter@entry=0x7f7708023800 [GstCaps]) at ../gst/gstutils.c:3061
#51 0x00007f904f799f6f in gst_base_transform_find_transform (caps=0x7f7718009d40 [GstCaps], pad=0x7f771405cd80 [GstPad|sink], trans=0x7f7714077a50 [GstVideoConvert|conv2]) at ../libs/gst/base/gstbasetransform.c:1123
#52 0x00007f904f799f6f in gst_base_transform_setcaps (trans=trans@entry=0x7f7714077a50 [GstVideoConvert|conv2], pad=0x7f771405cd80 [GstPad|sink], incaps=0x7f7718009d40 [GstCaps]) at ../libs/gst/base/gstbasetransform.c:1309
#53 0x00007f904f79c1ba in gst_base_transform_sink_eventfunc (trans=0x7f7714077a50 [GstVideoConvert|conv2], event=0x7f7718008490 [GstEvent]) at ../libs/gst/base/gstbasetransform.c:1898
#54 0x00007f904f68e1a4 in gst_pad_send_event_unchecked (pad=pad@entry=0x7f771405cd80 [GstPad|sink], event=event@entry=0x7f7718008490 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5766
#55 0x00007f904f68e754 in gst_pad_push_event_unchecked (pad=pad@entry=0x7f771405c690 [GstPad|src], event=0x7f7718008490 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5411
#56 0x00007f904f68ebca in push_sticky (pad=pad@entry=0x7f771405c690 [GstPad|src], ev=ev@entry=0x7f772effbc00, user_data=user_data@entry=0x7f772effbc70) at ../gst/gstevent.h:438
#57 0x00007f904f68c520 in events_foreach (pad=pad@entry=0x7f771405c690 [GstPad|src], func=func@entry=0x7f904f68eb70 <push_sticky>, user_data=user_data@entry=0x7f772effbc70) at ../gst/gstpad.c:608
#58 0x00007f904f697491 in check_sticky (event=0x7f7718008490 [GstEvent], pad=0x7f771405c690 [GstPad|src]) at ../gst/gstpad.c:3986
#59 0x00007f904f697491 in gst_pad_push_event (pad=pad@entry=0x7f771405c690 [GstPad|src], event=0x7f7718008490 [GstEvent]) at ../gst/gstpad.c:5542
#60 0x00007f904f79ad18 in gst_pad_set_caps (caps=0x7f7718009d40 [GstCaps], pad=0x7f771405c690 [GstPad|src]) at ../gst/gstcompat.h:59
#61 0x00007f904f79ad18 in gst_base_transform_setcaps (trans=trans@entry=0x7f77140729a0 [GstVideoBalance|videobalance], pad=<optimized out>, incaps=0x7f7718009d40 [GstCaps]) at ../libs/gst/base/gstbasetransform.c:1337
#62 0x00007f904f79c1ba in gst_base_transform_sink_eventfunc (trans=0x7f77140729a0 [GstVideoBalance|videobalance], event=0x7f77280045c0 [GstEvent]) at ../libs/gst/base/gstbasetransform.c:1898
#63 0x00007f904f68e1a4 in gst_pad_send_event_unchecked (pad=pad@entry=0x7f77200e60f0 [GstPad|sink], event=event@entry=0x7f77280045c0 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5766
#64 0x00007f904f68e754 in gst_pad_push_event_unchecked (pad=pad@entry=0x7f771405cfd0 [GstPad|src], event=0x7f77280045c0 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5411
#65 0x00007f904f68ebca in push_sticky (pad=pad@entry=0x7f771405cfd0 [GstPad|src], ev=ev@entry=0x7f772effbfa0, user_data=user_data@entry=0x7f772effc010) at ../gst/gstevent.h:438
#66 0x00007f904f68c520 in events_foreach (pad=pad@entry=0x7f771405cfd0 [GstPad|src], func=func@entry=0x7f904f68eb70 <push_sticky>, user_data=user_data@entry=0x7f772effc010) at ../gst/gstpad.c:608
#67 0x00007f904f697491 in check_sticky (event=0x7f77280045c0 [GstEvent], pad=0x7f771405cfd0 [GstPad|src]) at ../gst/gstpad.c:3986
#68 0x00007f904f697491 in gst_pad_push_event (pad=pad@entry=0x7f771405cfd0 [GstPad|src], event=0x7f77280045c0 [GstEvent]) at ../gst/gstpad.c:5542
#69 0x00007f904f79ad18 in gst_pad_set_caps (caps=0x7f7718009d40 [GstCaps], pad=0x7f771405cfd0 [GstPad|src]) at ../gst/gstcompat.h:59
#70 0x00007f904f79ad18 in gst_base_transform_setcaps (trans=trans@entry=0x7f771408e2e0 [GstVideoScale|scale], pad=<optimized out>, incaps=0x7f7718009d40 [GstCaps]) at ../libs/gst/base/gstbasetransform.c:1337
#71 0x00007f904f79c1ba in gst_base_transform_sink_eventfunc (trans=0x7f771408e2e0 [GstVideoScale|scale], event=0x7f7714006350 [GstEvent]) at ../libs/gst/base/gstbasetransform.c:1898
#72 0x00007f904f68e1a4 in gst_pad_send_event_unchecked (pad=pad@entry=0x7f771405d6c0 [GstPad|sink], event=event@entry=0x7f7714006350 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5766
#73 0x00007f904f68e754 in gst_pad_push_event_unchecked (pad=pad@entry=0x7f771405d470 [GstPad|src], event=0x7f7714006350 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5411
#74 0x00007f904f68ebca in push_sticky (pad=pad@entry=0x7f771405d470 [GstPad|src], ev=ev@entry=0x7f772effc340, user_data=user_data@entry=0x7f772effc3b0) at ../gst/gstevent.h:438
#75 0x00007f904f68c520 in events_foreach (pad=pad@entry=0x7f771405d470 [GstPad|src], func=func@entry=0x7f904f68eb70 <push_sticky>, user_data=user_data@entry=0x7f772effc3b0) at ../gst/gstpad.c:608
#76 0x00007f904f697491 in check_sticky (event=0x7f7714006350 [GstEvent], pad=0x7f771405d470 [GstPad|src]) at ../gst/gstpad.c:3986
#77 0x00007f904f697491 in gst_pad_push_event (pad=pad@entry=0x7f771405d470 [GstPad|src], event=0x7f7714006350 [GstEvent]) at ../gst/gstpad.c:5542
#78 0x00007f904f79ad18 in gst_pad_set_caps (caps=0x7f7718009d40 [GstCaps], pad=0x7f771405d470 [GstPad|src]) at ../gst/gstcompat.h:59
#79 0x00007f904f79ad18 in gst_base_transform_setcaps (trans=trans@entry=0x7f77140360d0 [GstVideoConvert|conv], pad=<optimized out>, incaps=0x7f7718009d40 [GstCaps]) at ../libs/gst/base/gstbasetransform.c:1337
#80 0x00007f904f79c1ba in gst_base_transform_sink_eventfunc (trans=0x7f77140360d0 [GstVideoConvert|conv], event=0x7f771c2818b0 [GstEvent]) at ../libs/gst/base/gstbasetransform.c:1898
#81 0x00007f904f68e1a4 in gst_pad_send_event_unchecked (pad=pad@entry=0x7f771405d220 [GstPad|sink], event=event@entry=0x7f771c2818b0 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5766
#82 0x00007f904f68e754 in gst_pad_push_event_unchecked (pad=pad@entry=0x7f771408d860 [GstProxyPad|proxypad1202], event=0x7f771c2818b0 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5411
#83 0x00007f904f68ebca in push_sticky (pad=pad@entry=0x7f771408d860 [GstProxyPad|proxypad1202], ev=ev@entry=0x7f772effc6e0, user_data=user_data@entry=0x7f772effc750) at ../gst/gstevent.h:438
#84 0x00007f904f68c520 in events_foreach (pad=pad@entry=0x7f771408d860 [GstProxyPad|proxypad1202], func=func@entry=0x7f904f68eb70 <push_sticky>, user_data=user_data@entry=0x7f772effc750) at ../gst/gstpad.c:608
#85 0x00007f904f697491 in check_sticky (event=0x7f771c2818b0 [GstEvent], pad=0x7f771408d860 [GstProxyPad|proxypad1202]) at ../gst/gstpad.c:3986
#86 0x00007f904f697491 in gst_pad_push_event (pad=pad@entry=0x7f771408d860 [GstProxyPad|proxypad1202], event=0x7f771c2818b0 [GstEvent]) at ../gst/gstpad.c:5542
#87 0x00007f904f697a0b in event_forward_func (pad=pad@entry=0x7f771408d860 [GstProxyPad|proxypad1202], data=data@entry=0x7f772effc850) at ../gst/gstevent.h:438
#88 0x00007f904f693d2e in gst_pad_forward (pad=pad@entry=0x7f771405e1e0 [GstGhostPad|sink], forward=forward@entry=0x7f904f697950 <event_forward_func>, user_data=user_data@entry=0x7f772effc850) at ../gst/gstpad.c:3008
#89 0x00007f904f693e75 in gst_pad_event_default (pad=pad@entry=0x7f771405e1e0 [GstGhostPad|sink], parent=parent@entry=0x7f77140221a0 [GstPlaySinkVideoConvert|vconv], event=0x7f771c2818b0 [GstEvent]) at ../gst/gstpad.c:3105
#90 0x00007f90087d3f1a in gst_play_sink_convert_bin_sink_event (pad=0x7f771405e1e0 [GstGhostPad|sink], parent=0x7f77140221a0 [GstPlaySinkVideoConvert|vconv], event=0x7f771c2818b0 [GstEvent]) at /usr/include/gstreamer-1.0/gst/gstevent.h:438
#91 0x00007f904f68e1a4 in gst_pad_send_event_unchecked (pad=pad@entry=0x7f771405e1e0 [GstGhostPad|sink], event=event@entry=0x7f771c2818b0 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5766
#92 0x00007f904f68e754 in gst_pad_push_event_unchecked (pad=pad@entry=0x7f7714091d30 [GstPad|src], event=0x7f771c2818b0 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5411
#93 0x00007f904f68ebca in push_sticky (pad=pad@entry=0x7f7714091d30 [GstPad|src], ev=ev@entry=0x7f772effcab0, user_data=user_data@entry=0x7f772effcb20) at ../gst/gstevent.h:438
#94 0x00007f904f68c520 in events_foreach (pad=pad@entry=0x7f7714091d30 [GstPad|src], func=func@entry=0x7f904f68eb70 <push_sticky>, user_data=user_data@entry=0x7f772effcb20) at ../gst/gstpad.c:608
#95 0x00007f904f697491 in check_sticky (event=0x7f771c2818b0 [GstEvent], pad=0x7f7714091d30 [GstPad|src]) at ../gst/gstpad.c:3986
#96 0x00007f904f697491 in gst_pad_push_event (pad=0x7f7714091d30 [GstPad|src], event=event@entry=0x7f771c2818b0 [GstEvent]) at ../gst/gstpad.c:5542
#97 0x00007f900896ef52 in gst_queue_push_one (queue=0x7f77200a7050 [GstQueue|vqueue]) at ../plugins/elements/gstqueue.c:1455
#98 0x00007f900896ef52 in gst_queue_loop (pad=<optimized out>) at ../plugins/elements/gstqueue.c:1537
#99 0x00007f904f6c4be7 in gst_task_func (task=0x7f77000823b0 [GstTask|vqueue:src]) at ../gst/gsttask.c:328
#100 0x00007f904ed97004 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354
#101 0x00007f904ed96761 in g_thread_proxy (data=0x7f770c002180) at ../glib/gthread.c:807
#102 0x00007f904fde95e2 in start_thread (arg=<optimized out>) at pthread_create.c:479
#103 0x00007f904da7d473 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Comment 11 Philippe Normand 2020-06-01 01:06:48 PDT
Do these issues also happen when running tests with gst git master?
Comment 12 Víctor M. Jáquez L. 2020-06-02 03:09:40 PDT
Just ran imported/w3c/web-platform-tests/media-source with flatpak and gst-build on master, and these crashes do not appear.

I'm going to try with gstreamer 1.16
Comment 13 Alicia Boya García 2020-06-16 07:43:35 PDT
I confirmed that master GStreamer doesn't reproduce the bug, while 1.16.2. I bisected GStreamer between these two points and found the commit that fixes the issue.

commit 7e2073000a82a1e3361ac806ea698d2cf7ff0a30 (HEAD, refs/bisect/fixed)
Author: Matthew Waters <matthew@centricular.com>
Date:   Wed Feb 5 12:26:54 2020 +1100

    glbasefilter: add support for changing the display
    
    Each element will remove its usage of the old display and context and
    try to retrieve a new GL context.

Víctor is trying to remove redundant context setting which could also make this a non-issue for WebKit under currently released GStreamer: https://bugs.webkit.org/show_bug.cgi?id=213029

If that doesn't work, we could try to backport this patch to our flatpak GStreamer so that we get rid of one big source of flaky crashes when running multimedia tests.
Comment 14 Alicia Boya García 2020-06-23 05:08:45 PDT
Created attachment 402546 [details]
Patch
Comment 15 Philippe Normand 2020-06-23 05:51:49 PDT
Should testexpectations be updated in follow-up patches?
Comment 16 Alicia Boya García 2020-06-23 07:09:15 PDT
(In reply to Philippe Normand from comment #15)
> Should testexpectations be updated in follow-up patches?

If the crashes making these expectations are the refcount issue, yes.

I can't say anything about the gst_gl_insert_debug_marker() crashes, I just hit that traceback once for the first time today while running without the patch in a different machine.
Comment 17 Philippe Normand 2020-06-23 08:46:59 PDT
Feel free to land it, we'll clean up the test-expectations after several days of "stability" :)
Comment 18 EWS 2020-06-23 09:14:49 PDT
Committed r263401: <https://trac.webkit.org/changeset/263401>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402546 [details].
Comment 19 Radar WebKit Bug Importer 2020-06-23 09:15:16 PDT
<rdar://problem/64646967>