Bug 309434
| Summary: | [GStreamer] media-elements/loading-the-media-resource/resource-selection-source-media-env-change.html is a flaky crash | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Claudio Saavedra <csaavedra> |
| Component: | Media | Assignee: | Philippe Normand <philn> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | aboya, calvaris, eocanha, philn, vwatermeier, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Claudio Saavedra
Full path to test is imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-source-media-env-change.html
This test has crashed twice in the recent days. Stacktraces are different but they seem related in that TrackPrivateBaseGStreamer is doing asynchronous work involving a GStPad that has been deleted.
First stacktrace comes from https://build.webkit.org/results/GTK-Linux-64-bit-Release-Tests/308861@main%20(23809)/results.html
Thread 1 (Thread 0x7fd74e9fc6c0 (LWP 1160389)):
#0 0x00007fda14fcb671 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007fda14fcb923 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007fda146b976c in gst_pad_get_sticky_event (pad=<optimized out>, event_type=GST_EVENT_TAG, idx=2) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:6362
#3 0x00007fda1dfc52bd in WebCore::TrackPrivateBaseGStreamer::tagsChanged() () at /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4
#4 0x00007fda1dfc5e08 in WebCore::TrackPrivateBaseGStreamer::setPad(WTF::GRefPtr<_GstPad, WTF::GRefPtrDefaultRefDerefTraits<_GstPad> >&&)::{lambda(_GstPad*, _GstPadProbeInfo*, WebCore::TrackPrivateBaseGStreamer*)#1}::_FUN(_GstPad*, _GstPadProbeInfo*, WebCore::TrackPrivateBaseGStreamer*) () at /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4
#5 0x00007fda146ab265 in probe_hook_marshal (hook=0x55c2566efa40, data=0x7fd74e9fa630) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:3709
#6 0x00007fda14fb4f27 in g_hook_list_marshal () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7 0x00007fda146aa9ac in do_probe_callbacks (pad=pad@entry=0x7fd71004aca0, info=<optimized out>, defaultval=defaultval@entry=GST_FLOW_OK) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:3893
#8 0x00007fda146aecfc in gst_pad_push_event_unchecked (pad=pad@entry=0x7fd71004aca0, event=0x7fd7100f05c0, type=type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:5668
#9 0x00007fda146af607 in push_sticky (pad=pad@entry=0x7fd71004aca0, ev=ev@entry=0x7fd74e9fa870, user_data=user_data@entry=0x7fd74e9fa8d0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4127
#10 0x00007fda146ac2ac in events_foreach (pad=pad@entry=0x7fd71004aca0, func=func@entry=0x7fda146af530 <push_sticky>, user_data=user_data@entry=0x7fd74e9fa8d0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:622
#11 0x00007fda146af2ee in check_sticky (pad=pad@entry=0x7fd71004aca0, event=event@entry=0x7fd7100f05c0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4194
#12 0x00007fda146b8a33 in gst_pad_push_event (pad=pad@entry=0x7fd71004aca0, event=0x7fd7100f05c0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:5847
#13 0x00007fda146b8bcb in event_forward_func (pad=pad@entry=0x7fd71004aca0, data=data@entry=0x7fd74e9faa30) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:3170
#14 0x00007fda146b493a in gst_pad_forward (pad=pad@entry=0x7fd71004b050, forward=forward@entry=0x7fda146b8b10 <event_forward_func>, user_data=user_data@entry=0x7fd74e9faa30) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:3123
#15 0x00007fda146b4af3 in gst_pad_event_default (pad=0x7fd71004b050, parent=<optimized out>, event=0x7fd7100f05c0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:3221
#16 0x00007fda146ae311 in gst_pad_send_event_unchecked (pad=pad@entry=0x7fd71004b050, event=event@entry=0x7fd7100f05c0, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:6112
#17 0x00007fda146aebb4 in gst_pad_push_event_unchecked (pad=pad@entry=0x7fd7100ea3b0, event=0x7fd7100f05c0, type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:5707
#18 0x00007fda146af607 in push_sticky (pad=pad@entry=0x7fd7100ea3b0, ev=ev@entry=0x7fd74e9fac60, user_data=user_data@entry=0x7fd74e9facc0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4127
#19 0x00007fda146ac2ac in events_foreach (pad=pad@entry=0x7fd7100ea3b0, func=func@entry=0x7fda146af530 <push_sticky>, user_data=user_data@entry=0x7fd74e9facc0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:622
#20 0x00007fda146af2ee in check_sticky (pad=pad@entry=0x7fd7100ea3b0, event=event@entry=0x7fd7100f05c0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4194
#21 0x00007fda146b8a33 in gst_pad_push_event (pad=0x7fd7100ea3b0, event=0x7fd7100f05c0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:5847
#22 0x00007fda1458a9d3 in send_pending_events (dec=0x7fd7100e9bc0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c:1148
#23 0x00007fda1458e23f in gst_audio_decoder_finish_frame_or_subframe (dec=dec@entry=0x7fd7100e9bc0, buf=0x7fd70c044a80, frames=0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c:1388
#24 0x00007fda14592d75 in gst_audio_decoder_finish_subframe (dec=dec@entry=0x7fd7100e9bc0, buf=buf@entry=0x7fd70c044a80) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c:1306
#25 0x00007fd91448171b in gst_ffmpegauddec_frame (ffmpegdec=ffmpegdec@entry=0x7fd7100e9bc0, ret=ret@entry=0x7fd74e9faed8, need_more_data=need_more_data@entry=0x7fd74e9faedc) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-libav/ext/libav/gstavauddec.c:571
#26 0x00007fd91448242a in gst_ffmpegauddec_handle_frame (decoder=0x7fd7100e9bc0, inbuf=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-libav/ext/libav/gstavauddec.c:766
#27 0x00007fda1458b477 in gst_audio_decoder_push_buffers (dec=dec@entry=0x7fd7100e9bc0, force=force@entry=0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c:1753
#28 0x00007fda1458b963 in gst_audio_decoder_chain_forward (dec=dec@entry=0x7fd7100e9bc0, buffer=0x0, buffer@entry=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c:1867
#29 0x00007fda14590c7f in gst_audio_decoder_chain (pad=<optimized out>, parent=0x7fd7100e9bc0, buffer=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiodecoder.c:2126
#30 0x00007fda146ad33e in gst_pad_chain_data_unchecked (pad=pad@entry=0x7fd7100ea140, type=type@entry=4112, data=data@entry=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4559
#31 0x00007fda146afe59 in gst_pad_push_data (pad=pad@entry=0x7fd71009b2a0, type=type@entry=4112, data=data@entry=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4852
#32 0x00007fda146b767c in gst_pad_push (pad=0x7fd71009b2a0, buffer=buffer@entry=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4971
#33 0x00007fda147b587b in gst_base_parse_push_frame (parse=parse@entry=0x7fd710093ef0, frame=frame@entry=0x7fd74e9fb380) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/libs/gst/base/gstbaseparse.c:2640
#34 0x00007fda147b6e8a in gst_base_parse_chain (pad=<optimized out>, parent=0x7fd710093ef0, buffer=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/libs/gst/base/gstbaseparse.c:3267
#35 0x00007fda146ad33e in gst_pad_chain_data_unchecked (pad=pad@entry=0x7fd710051010, type=type@entry=4112, data=data@entry=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4559
#36 0x00007fda146afe59 in gst_pad_push_data (pad=pad@entry=0x7fd71009a600, type=type@entry=4112, data=data@entry=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4852
#37 0x00007fda146b767c in gst_pad_push (pad=pad@entry=0x7fd71009a600, buffer=buffer@entry=0x7fd71018e250) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:4971
#38 0x00007fd9b01682c0 in gst_single_queue_push_one (allow_drop=<synthetic pointer>, object=0x7fd71018e250, sq=0x7fd7100954a0, mq=<optimized out>) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2014
#39 gst_multi_queue_loop (pad=<optimized out>) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/plugins/elements/gstmultiqueue.c:2349
#40 0x00007fda146ebf52 in gst_task_func (task=0x7fd71009bbb0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gsttask.c:399
#41 0x00007fda14ffa422 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007fda14ff4e62 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007fda18c8aaa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#44 0x00007fda18d17c6c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
STDERR: gst_pad_get_sticky_event: assertion 'GST_IS_PAD (pad)' failed
The second stacktrace comes from https://build.webkit.org/results/WPE-Linux-64-bit-Release-Tests/308875@main%20(25792)/results.html
Thread 1 (Thread 0x7f737e430540 (LWP 316369)):
#0 0x00007f7384b89671 in g_logv () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1 0x00007f7384b89923 in g_log () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2 0x00007f73859ab605 in gst_pad_get_stream_id (pad=0x0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstutils.c:4459
#3 0x00007f738ccbf07d in WebCore::getStreamIdFromPad(WTF::GRefPtr<_GstPad, WTF::GRefPtrDefaultRefDerefTraits<_GstPad> > const&) () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#4 0x00007f738ccfc766 in WTF::Detail::CallableWrapper<WebCore::TrackPrivateBaseGStreamer::installUpdateConfigurationHandlers()::{lambda(WebCore::TrackPrivateBaseGStreamer*)#1}::operator()(WebCore::TrackPrivateBaseGStreamer*) const::{lambda()#1}, void>::call() () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#5 0x00007f738a43e995 in WTF::RunLoop::performWork() () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#6 0x00007f738a529a4d in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#7 0x00007f738a52d3fd in WTF::RunLoop::{lambda(_GSource*, int (*)(void*), void*)#1}::_FUN(_GSource*, int (*)(void*), void*) () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#8 0x00007f7384b8445e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9 0x00007f7384b846d0 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f738a52b757 in WTF::RunLoop::runGLibMainLoopIteration(WTF::RunLoop::MayBlock) () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#11 0x00007f738a52bb52 in WTF::RunLoop::run() () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#12 0x00007f73889195b6 in int WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainWPE>(int, char**) () at /sdk/webkit/WebKitBuild/WPE/Release/lib/libWPEWebKit-2.0.so.1
#13 0x00007f7385bfa1ca in __libc_start_call_main (main=main@entry=0x55c0a85d77d0 <main>, argc=argc@entry=4, argv=argv@entry=0x7ffccccf7528) at ../sysdeps/nptl/libc_start_call_main.h:58
#14 0x00007f7385bfa28b in __libc_start_main_impl (main=0x55c0a85d77d0 <main>, argc=4, argv=0x7ffccccf7528, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffccccf7518) at ../csu/libc-start.c:360
#15 0x000055c0a85d7705 in _start ()
STDERR: (WPEWebProcess:316369): GStreamer-CRITICAL **: 18:02:39.971: gst_pad_get_stream_id: assertion 'GST_IS_PAD (pad)' failed
STDERR: WPEWebProcess terminated (pid 316369) for reason: crash
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Philippe Normand
Pull request: https://github.com/WebKit/WebKit/pull/60161
EWS
Committed 308971@main (da7090ba5483): <https://commits.webkit.org/308971@main>
Reviewed commits have been landed. Closing PR #60161 and removing active labels.
Radar WebKit Bug Importer
<rdar://problem/172182938>