RESOLVED FIXED244776
[MSE][GStreamer] Race condition: WebKitVideoSink is sometimes linked mid-flush
https://bugs.webkit.org/show_bug.cgi?id=244776
Summary [MSE][GStreamer] Race condition: WebKitVideoSink is sometimes linked mid-flush
Philippe Normand
Reported 2022-09-04 09:31:23 PDT
Regressions: Unexpected crashes (3) media/media-source/media-source-seek-detach-crash.html [ Crash ] media/media-source/media-source-seek-twice.html [ Crash ] media/media-source/media-source-unnecessary-seek-seeked.html [ Crash ] STDERR: ASSERTION FAILED: m_aborting STDERR: /app/webkit/Source/WebCore/platform/AbortableTaskQueue.h(112) : void WebCore::AbortableTaskQueue::finishAborting() Thread 1 (Thread 0x7fe8e9a509c0 (LWP 8091)): #0 0x00007fe8f1e716ae in WTFCrash() () at /app/webkit/Source/WTF/wtf/Assertions.cpp:328 #1 0x00007fe8f8ef29fb in WTFCrashWithInfo(int, char const*, char const*, int) () at WTF/Headers/wtf/Assertions.h:754 #2 0x00007fe8faa41ba0 in WebCore::AbortableTaskQueue::finishAborting() (this=0x7fe8df470988) at /app/webkit/Source/WebCore/platform/AbortableTaskQueue.h:112 #3 0x00007fe8faa661bd in webKitVideoSinkSetMediaPlayerPrivate(_GstElement*, WebCore::MediaPlayerPrivateGStreamer*)::$_3::operator()(_GstPad*, _GstPadProbeInfo*, void*) const (this=0x7fe6d00317a0, pad=0x7fe6d00317a0 [GstPad], info=0x7fff88fa4050, userData=0x7fe8df470580) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:64 #4 0x00007fe8faa66085 in webKitVideoSinkSetMediaPlayerPrivate(_GstElement*, WebCore::MediaPlayerPrivateGStreamer*)::$_3::__invoke(_GstPad*, _GstPadProbeInfo*, void*) (pad=0x7fe6d00317a0 [GstPad], info=0x7fff88fa4050, userData=0x7fe8df470580) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:55 #5 0x00007fe8eb5c5126 in probe_hook_marshal (hook=0x7fe6c42106c0, data=0x7fff88fa3f00) at ../gst/gstpad.c:3664 #6 0x00007fe8ec31d896 in g_hook_list_marshal (hook_list=hook_list@entry=0x7fe6d0031838, may_recurse=may_recurse@entry=1, marshaller=marshaller@entry=0x7fe8eb5c4d90 <probe_hook_marshal>, data=data@entry=0x7fff88fa3f00) at ../glib/ghook.c:672 #7 0x00007fe8eb5c4895 in do_probe_callbacks (pad=pad@entry=0x7fe6d00317a0 [GstPad], info=<optimized out>, defaultval=defaultval@entry=GST_FLOW_OK) at ../gst/gstpad.c:3848 #8 0x00007fe8eb5c768d in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6d00317a0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5872 #9 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6d00302d0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #10 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6d00302d0 [GstPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #11 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c01495a0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #12 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6c0123b40 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #13 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6c0123b40 [GstPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #14 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x214ce30 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #15 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x2155ad0 [GstProxyPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #16 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x2155ad0 [GstProxyPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #17 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x2155ad0 [GstProxyPad], data=data@entry=0x7fff88fa4680) at ../gst/gstpad.c:3125 #18 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6c0004060 [GstGhostPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa4680) at ../gst/gstpad.c:3079 #19 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6c0004060 [GstGhostPad], parent=<optimized out>, event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:3176 #20 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c0004060 [GstGhostPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #21 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6d0008060 [GstGhostPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #22 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6d0008060 [GstGhostPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #23 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6d0008060 [GstGhostPad], data=data@entry=0x7fff88fa4950) at ../gst/gstpad.c:3125 #24 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6b830a2d0 [GstProxyPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa4950) at ../gst/gstpad.c:3079 #25 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6b830a2d0 [GstProxyPad], parent=<optimized out>, event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:3176 #26 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b830a2d0 [GstProxyPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #27 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b81cdaa0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #28 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6b81cdaa0 [GstPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #29 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b81cd850 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #30 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b830a530 [GstProxyPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #31 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6b830a530 [GstProxyPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #32 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6b830a530 [GstProxyPad], data=data@entry=0x7fff88fa4e10) at ../gst/gstpad.c:3125 #33 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x1cff160 [GstGhostPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa4e10) at ../gst/gstpad.c:3079 #34 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=pad@entry=0x1cff160 [GstGhostPad], parent=parent@entry=0x20b7300 [GstPlaySinkVideoConvert], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:3176 #35 0x00007fe89c15eaca in gst_play_sink_convert_bin_sink_event (pad=0x1cff160 [GstGhostPad], parent=0x20b7300 [GstPlaySinkVideoConvert], event=0x7fe6d0002010 [GstEvent]) at ../gst/playback/gstplaysinkconvertbin.c:260 #36 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x1cff160 [GstGhostPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #37 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b81cd3b0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #38 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6b81cd3b0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #39 0x00007fe89c1d7276 in gst_queue_handle_sink_event (pad=0x7fe6b81cd600 [GstPad], parent=<optimized out>, event=0x7fe6d0002010 [GstEvent]) at ../plugins/elements/gstqueue.c:949 #40 0x00007fe8eb5c79c2 in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b81cd600 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5899 #41 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b830ac50 [GstProxyPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #42 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6b830ac50 [GstProxyPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #43 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6b830ac50 [GstProxyPad], data=data@entry=0x7fff88fa53c0) at ../gst/gstpad.c:3125 #44 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6d00093e0 [GstGhostPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa53c0) at ../gst/gstpad.c:3079 #45 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6d00093e0 [GstGhostPad], parent=<optimized out>, event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:3176 #46 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6d00093e0 [GstGhostPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #47 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6d0008a20 [GstGhostPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #48 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6d0008a20 [GstGhostPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #49 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6d0008a20 [GstGhostPad], data=data@entry=0x7fff88fa5690) at ../gst/gstpad.c:3125 #50 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6b830b5d0 [GstProxyPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa5690) at ../gst/gstpad.c:3079 #51 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6b830b5d0 [GstProxyPad], parent=<optimized out>, event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:3176 #52 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b830b5d0 [GstProxyPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #53 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b80d57e0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #54 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6b80d57e0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #55 0x00007fe8740c6445 in gst_deinterlace_sink_event (pad=0x7fe6b80d5590 [GstPad], parent=0x7fe6b80d6000 [GstDeinterlace], event=0x7fe6d0002010 [GstEvent]) at ../gst/deinterlace/gstdeinterlace.c:3130 #56 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b80d5590 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #57 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b80d5340 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #58 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6b80d5340 [GstPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #59 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b80d50f0 [GstPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #60 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b830b370 [GstProxyPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #61 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6b830b370 [GstProxyPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #62 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6b830b370 [GstProxyPad], data=data@entry=0x7fff88fa5d80) at ../gst/gstpad.c:3125 #63 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6d0008540 [GstGhostPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa5d80) at ../gst/gstpad.c:3079 #64 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6d0008540 [GstGhostPad], parent=<optimized out>, event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:3176 #65 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6d0008540 [GstGhostPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #66 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b830b100 [GstStreamSyncPad], event=event@entry=0x7fe6d0002010 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #67 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6b830b100 [GstStreamSyncPad], event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:5681 #68 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6b830b100 [GstStreamSyncPad], data=data@entry=0x7fff88fa6050) at ../gst/gstpad.c:3125 #69 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6b830aea0 [GstStreamSyncPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa6050) at ../gst/gstpad.c:3079 #70 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6b830aea0 [GstStreamSyncPad], parent=<optimized out>, event=0x7fe6d0002010 [GstEvent]) at ../gst/gstpad.c:3176 #71 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b830aea0 [GstStreamSyncPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #72 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x21540b0 [GstProxyPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #73 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x21540b0 [GstProxyPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #74 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x21540b0 [GstProxyPad], data=data@entry=0x7fff88fa6320) at ../gst/gstpad.c:3125 #75 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x1cffd90 [GstGhostPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa6320) at ../gst/gstpad.c:3079 #76 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x1cffd90 [GstGhostPad], parent=<optimized out>, event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #77 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x1cffd90 [GstGhostPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #78 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b81cd160 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #79 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6b81cd160 [GstPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #80 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6b81cd160 [GstPad], data=data@entry=0x7fff88fa65f0) at ../gst/gstpad.c:3125 #81 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x1d0ceb0 [GstConcatPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa65f0) at ../gst/gstpad.c:3079 #82 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=pad@entry=0x1d0ceb0 [GstConcatPad], parent=parent@entry=0x1d4b000 [GstConcat], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #83 0x00007fe89c19f9fb in gst_concat_sink_event (pad=0x1d0ceb0 [GstConcatPad], parent=0x1d4b000 [GstConcat], event=<optimized out>) at ../plugins/elements/gstconcat.c:706 #84 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x1d0ceb0 [GstConcatPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #85 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x1cff3d0 [GstGhostPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #86 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x1cff3d0 [GstGhostPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #87 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x1cff3d0 [GstGhostPad], data=data@entry=0x7fff88fa69c0) at ../gst/gstpad.c:3125 #88 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6b830a9f0 [GstProxyPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa69c0) at ../gst/gstpad.c:3079 #89 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6b830a9f0 [GstProxyPad], parent=<optimized out>, event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #90 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b830a9f0 [GstProxyPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #91 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x1cfec80 [GstGhostPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #92 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x1cfec80 [GstGhostPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #93 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x1cfec80 [GstGhostPad], data=data@entry=0x7fff88fa6c90) at ../gst/gstpad.c:3125 #94 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6c8004520 [GstProxyPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa6c90) at ../gst/gstpad.c:3079 #95 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6c8004520 [GstProxyPad], parent=<optimized out>, event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #96 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c8004520 [GstProxyPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #97 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6c0148c60 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #98 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6c0148c60 [GstPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #99 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6d00310b0 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #100 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x20f9cc0 [GstMultiQueuePad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #101 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x20f9cc0 [GstMultiQueuePad], event=event@entry=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #102 0x00007fe89c1c0b22 in gst_multi_queue_sink_event (pad=<optimized out>, parent=0x1d4a3e0 [GstMultiQueue], event=0x7fe6c429db30 [GstEvent]) at ../plugins/elements/gstmultiqueue.c:2612 #103 0x00007fe8eb5c79c2 in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6d0030520 [GstMultiQueuePad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5899 #104 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6d0015340 [GstParsePad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #105 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6d0015340 [GstParsePad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #106 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6d0015340 [GstParsePad], data=data@entry=0x7fff88fa73d0) at ../gst/gstpad.c:3125 #107 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6c013ecc0 [GstProxyPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa73d0) at ../gst/gstpad.c:3079 #108 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6c013ecc0 [GstProxyPad], parent=<optimized out>, event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #109 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c013ecc0 [GstProxyPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #110 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6c001c580 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #111 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6c001c580 [GstPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #112 0x00007fe89c19b3fa in gst_capsfilter_sink_event (trans=0x20f6600 [GstCapsFilter], event=0x7fe6c429db30 [GstEvent]) at ../plugins/elements/gstcapsfilter.c:527 #113 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c001c330 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #114 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6c001d360 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #115 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6c001d360 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #116 0x00007fe8eb6bef8f in gst_base_parse_sink_event_default (parse=0x7fe6b0010260 [GstH264Parse], event=0x7fe6c429db30 [GstEvent]) at ../libs/gst/base/gstbaseparse.c:1558 #117 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6b81cc380 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #118 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6c01221d0 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #119 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6c01221d0 [GstPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #120 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c01228c0 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #121 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x1cf73c0 [GstProxyPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #122 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x1cf73c0 [GstProxyPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #123 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x1cf73c0 [GstProxyPad], data=data@entry=0x7fff88fa7db0) at ../gst/gstpad.c:3125 #124 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6c0004f00 [GstGhostPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa7db0) at ../gst/gstpad.c:3079 #125 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6c0004f00 [GstGhostPad], parent=<optimized out>, event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #126 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c0004f00 [GstGhostPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #127 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x21547d0 [GstProxyPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #128 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x21547d0 [GstProxyPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #129 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x21547d0 [GstProxyPad], data=data@entry=0x7fff88fa8080) at ../gst/gstpad.c:3125 #130 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x7fe6c00053e0 [GstGhostPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa8080) at ../gst/gstpad.c:3079 #131 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x7fe6c00053e0 [GstGhostPad], parent=<optimized out>, event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #132 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c00053e0 [GstGhostPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #133 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6d0009da0 [GstGhostPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #134 0x00007fe8eb5d17de in gst_pad_push_event (pad=pad@entry=0x7fe6d0009da0 [GstGhostPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #135 0x00007fe8eb5d1d62 in event_forward_func (pad=pad@entry=0x7fe6d0009da0 [GstGhostPad], data=data@entry=0x7fff88fa8350) at ../gst/gstpad.c:3125 #136 0x00007fe8eb5cdd6e in gst_pad_forward (pad=pad@entry=0x2155610 [GstProxyPad], forward=forward@entry=0x7fe8eb5d1ca0 <event_forward_func>, user_data=user_data@entry=0x7fff88fa8350) at ../gst/gstpad.c:3079 #137 0x00007fe8eb5cdeb5 in gst_pad_event_default (pad=0x2155610 [GstProxyPad], parent=<optimized out>, event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:3176 #138 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x2155610 [GstProxyPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #139 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x7fe6b80fe1c0 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #140 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x7fe6b80fe1c0 [GstPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #141 0x00007fe8eb5c7bec in gst_pad_send_event_unchecked (pad=pad@entry=0x7fe6c01497f0 [GstPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=320) at ../gst/gstpad.c:5900 #142 0x00007fe8eb5c826e in gst_pad_push_event_unchecked (pad=pad@entry=0x2154a30 [WebKitMediaSrcPad], event=event@entry=0x7fe6c429db30 [GstEvent], type=<optimized out>, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at ../gst/gstpad.c:5544 #143 0x00007fe8eb5d17de in gst_pad_push_event (pad=0x2154a30 [WebKitMediaSrcPad], event=0x7fe6c429db30 [GstEvent]) at ../gst/gstpad.c:5681 #144 0x00007fe8fab09e76 in webKitMediaSrcStreamFlush(Stream*, bool) (stream=0x7fe8df2abaa0, isSeekingFlush=true) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:634 #145 0x00007fe8fab0b1f1 in webKitMediaSrcSeek(WebKitMediaSrc*, unsigned long, double) (source=0x198beb0 [WebKitMediaSrc], startTime=1500000000, rate=1) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:662 #146 0x00007fe8fab0aa49 in webKitMediaSrcSendEvent(_GstElement*, _GstEvent*) (element=0x198beb0 [WebKitMediaSrc], event=0x7fe6c429dca0 [GstEvent]) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:726 #147 0x00007fe8eb5a945a in gst_element_send_event (element=0x198beb0 [WebKitMediaSrc], event=0x7fe6c429dca0 [GstEvent]) at ../gst/gstelement.c:1984 #148 0x00007fe8faaf0a23 in WebCore::MediaPlayerPrivateGStreamerMSE::doSeek(WTF::MediaTime const&, float, GstSeekFlags) (this=0x7fe8df470580, position=..., rate=1, seekFlags=GST_SEEK_FLAG_FLUSH) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:186 #149 0x00007fe8faaf0951 in WebCore::MediaPlayerPrivateGStreamerMSE::seek(WTF::MediaTime const&) (this=0x7fe8df470580, time=...) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:162 #150 0x00007fe8faa9a069 in WebCore::MediaPlayerPrivateInterface::seekWithTolerance(WTF::MediaTime const&, WTF::MediaTime const&, WTF::MediaTime const&) (this=0x7fe8df470580, time=...) at /app/webkit/Source/WebCore/platform/graphics/MediaPlayerPrivate.h:127 #151 0x00007fe8fe3a083d in WebCore::MediaPlayer::seekWithTolerance(WTF::MediaTime const&, WTF::MediaTime const&, WTF::MediaTime const&) (this=0x7fe8df3e8e20, time=..., negativeTolerance=..., positiveTolerance=...) at /app/webkit/Source/WebCore/platform/graphics/MediaPlayer.cpp:793 #152 0x00007fe8fd773460 in WebCore::HTMLMediaElement::seekTask() (this=0x7fe87e044c70) at /app/webkit/Source/WebCore/html/HTMLMediaElement.cpp:3442 #153 0x00007fe8fd7b0fce in std::__invoke_impl<void, void (WebCore::HTMLMediaElement::*&)(), WebCore::HTMLMediaElement*&>(std::__invoke_memfun_deref, void (WebCore::HTMLMediaElement::*&)(), WebCore::HTMLMediaElement*&) (__f=@0x7fe8df5d4288: (void (WebCore::HTMLMediaElement::*)(WebCore::HTMLMediaElement * const)) 0x7fe8fd772b80 <WebCore::HTMLMediaElement::seekTask()>, __t=@0x7fe8df5d4298: 0x7fe87e044c70) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/invoke.h:74 #154 0x00007fe8fd7b0f02 in std::__invoke<void (WebCore::HTMLMediaElement::*&)(), WebCore::HTMLMediaElement*&>(void (WebCore::HTMLMediaElement::*&)(), WebCore::HTMLMediaElement*&) (__fn=@0x7fe8df5d4288: (void (WebCore::HTMLMediaElement::*)(WebCore::HTMLMediaElement * const)) 0x7fe8fd772b80 <WebCore::HTMLMediaElement::seekTask()>, __args=@0x7fe8df5d4298: 0x7fe87e044c70) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/invoke.h:96 #155 0x00007fe8fd7b0ebd in std::_Bind<void (WebCore::HTMLMediaElement::*(WebCore::HTMLMediaElement*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7fe8df5d4288, __args=...) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/functional:420 #156 0x00007fe8fd7b0e76 in std::_Bind<void (WebCore::HTMLMediaElement::*(WebCore::HTMLMediaElement*))()>::operator()<, void>() (this=0x7fe8df5d4288) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/functional:503 #157 0x00007fe8fd7b0dd9 in WTF::Detail::CallableWrapper<std::_Bind<void (WebCore::HTMLMediaElement::*(WebCore::HTMLMediaElement*))()>, void>::call() (this=0x7fe8df5d4280) at WTF/Headers/wtf/Function.h:53 #158 0x00007fe8f8f79d82 in WTF::Function<void ()>::operator()() const (this=0x7fe8df251fa8) at WTF/Headers/wtf/Function.h:82 #159 0x00007fe8fcbb4a51 in WTF::CancellableTask::operator()() (this=0x7fe8df251f98) at WTF/Headers/wtf/CancellableTask.h:86 #160 0x00007fe8fd7b0649 in WebCore::ActiveDOMObject::queueCancellableTaskKeepingObjectAlive<WebCore::HTMLMediaElement>(WebCore::HTMLMediaElement&, WebCore::TaskSource, WTF::TaskCancellationGroup&, WTF::Function<void ()>&&)::{lambda()#1}::operator()() (this=0x7fe8df251f88) at /app/webkit/Source/WebCore/dom/ActiveDOMObject.h:119 #161 0x00007fe8fd7b0609 in WTF::Detail::CallableWrapper<WebCore::ActiveDOMObject::queueCancellableTaskKeepingObjectAlive<WebCore::HTMLMediaElement>(WebCore::HTMLMediaElement&, WebCore::TaskSource, WTF::TaskCancellationGroup&, WTF::Function<void ()>&&)::{lambda()#1}, void>::call() (this=0x7fe8df251f80) at WTF/Headers/wtf/Function.h:53 #162 0x00007fe8f8f79d82 in WTF::Function<void ()>::operator()() const (this=0x7fe8df251fd0) at WTF/Headers/wtf/Function.h:82 #163 0x00007fe8fd3df279 in WebCore::EventLoopFunctionDispatchTask::execute() (this=0x7fe8df251fb0) at /app/webkit/Source/WebCore/dom/EventLoop.cpp:159 #164 0x00007fe8fd3ce650 in WebCore::EventLoop::run() (this=0x7fe8df118f50) at /app/webkit/Source/WebCore/dom/EventLoop.cpp:123 #165 0x00007fe8fd519936 in WebCore::WindowEventLoop::didReachTimeToRun() (this=0x7fe8df118f50) at /app/webkit/Source/WebCore/dom/WindowEventLoop.cpp:121 #166 0x00007fe8fd52300e in std::__invoke_impl<void, void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*&>(std::__invoke_memfun_deref, void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*&) (__f=@0x7fe8df1c37c8: (void (WebCore::WindowEventLoop::*)(WebCore::WindowEventLoop * const)) 0x7fe8fd519910 <WebCore::WindowEventLoop::didReachTimeToRun()>, __t=@0x7fe8df1c37d8: 0x7fe8df118f50) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/invoke.h:74 #167 0x00007fe8fd522f42 in std::__invoke<void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*&>(void (WebCore::WindowEventLoop::*&)(), WebCore::WindowEventLoop*&) (__fn=@0x7fe8df1c37c8: (void (WebCore::WindowEventLoop::*)(WebCore::WindowEventLoop * const)) 0x7fe8fd519910 <WebCore::WindowEventLoop::didReachTimeToRun()>, __args=@0x7fe8df1c37d8: 0x7fe8df118f50) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/invoke.h:96 #168 0x00007fe8fd522efd in std::_Bind<void (WebCore::WindowEventLoop::*(WebCore::WindowEventLoop*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7fe8df1c37c8, __args=...) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/functional:420 #169 0x00007fe8fd522eb6 in std::_Bind<void (WebCore::WindowEventLoop::*(WebCore::WindowEventLoop*))()>::operator()<, void>() (this=0x7fe8df1c37c8) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/functional:503 #170 0x00007fe8fd522e19 in WTF::Detail::CallableWrapper<std::_Bind<void (WebCore::WindowEventLoop::*(WebCore::WindowEventLoop*))()>, void>::call() (this=0x7fe8df1c37c0) at WTF/Headers/wtf/Function.h:53 #171 0x00007fe8f8f79d82 in WTF::Function<void ()>::operator()() const (this=0x7fe8df118fe8) at WTF/Headers/wtf/Function.h:82 #172 0x00007fe8f97e60c9 in WebCore::Timer::fired() (this=0x7fe8df118fc0) at WebCore/PrivateHeaders/WebCore/Timer.h:135 #173 0x00007fe8fe1baef6 in WebCore::ThreadTimers::sharedTimerFiredInternal() (this=0x7fe8df0e3570) at /app/webkit/Source/WebCore/platform/ThreadTimers.cpp:127 #174 0x00007fe8fe1bc7f1 in WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const (this=0x7fe8df0008c8) at /app/webkit/Source/WebCore/platform/ThreadTimers.cpp:67 #175 0x00007fe8fe1bc7a9 in WTF::Detail::CallableWrapper<WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void>::call() (this=0x7fe8df0008c0) at WTF/Headers/wtf/Function.h:53 #176 0x00007fe8f8f79d82 in WTF::Function<void ()>::operator()() const (this=0x7fe8ff6a2248 <WebCore::MainThreadSharedTimer::singleton()::instance+8>) at WTF/Headers/wtf/Function.h:82 #177 0x00007fe8fe16c711 in WebCore::MainThreadSharedTimer::fired() (this=0x7fe8ff6a2240 <WebCore::MainThreadSharedTimer::singleton()::instance>) at /app/webkit/Source/WebCore/platform/MainThreadSharedTimer.cpp:83 #178 0x00007fe8fe1732be in std::__invoke_impl<void, void (WebCore::MainThreadSharedTimer::*&)(), WebCore::MainThreadSharedTimer*&>(std::__invoke_memfun_deref, void (WebCore::MainThreadSharedTimer::*&)(), WebCore::MainThreadSharedTimer*&) (__f=@0x7fe8df0dff48: (void (WebCore::MainThreadSharedTimer::*)(WebCore::MainThreadSharedTimer * const)) 0x7fe8fe16c690 <WebCore::MainThreadSharedTimer::fired()>, __t=@0x7fe8df0dff58: 0x7fe8ff6a2240 <WebCore::MainThreadSharedTimer::singleton()::instance>) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/invoke.h:74 #179 0x00007fe8fe1731f2 in std::__invoke<void (WebCore::MainThreadSharedTimer::*&)(), WebCore::MainThreadSharedTimer*&>(void (WebCore::MainThreadSharedTimer::*&)(), WebCore::MainThreadSharedTimer*&) (__fn=@0x7fe8df0dff48: (void (WebCore::MainThreadSharedTimer::*)(WebCore::MainThreadSharedTimer * const)) 0x7fe8fe16c690 <WebCore::MainThreadSharedTimer::fired()>, __args=@0x7fe8df0dff58: 0x7fe8ff6a2240 <WebCore::MainThreadSharedTimer::singleton()::instance>) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/invoke.h:96 #180 0x00007fe8fe1731ad in std::_Bind<void (WebCore::MainThreadSharedTimer::*(WebCore::MainThreadSharedTimer*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7fe8df0dff48, __args=...) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/functional:420 #181 0x00007fe8fe173166 in std::_Bind<void (WebCore::MainThreadSharedTimer::*(WebCore::MainThreadSharedTimer*))()>::operator()<, void>() (this=0x7fe8df0dff48) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/functional:503 #182 0x00007fe8fe1730c9 in WTF::Detail::CallableWrapper<std::_Bind<void (WebCore::MainThreadSharedTimer::*(WebCore::MainThreadSharedTimer*))()>, void>::call() (this=0x7fe8df0dff40) at WTF/Headers/wtf/Function.h:53 #183 0x00007fe8f8f79d82 in WTF::Function<void ()>::operator()() const (this=0x7fe8ff6a2278 <WebCore::MainThreadSharedTimer::singleton()::instance+56>) at WTF/Headers/wtf/Function.h:82 #184 0x00007fe8fe171589 in WTF::RunLoop::Timer<WebCore::MainThreadSharedTimer>::fired() (this=0x7fe8ff6a2250 <WebCore::MainThreadSharedTimer::singleton()::instance+16>) at WTF/Headers/wtf/RunLoop.h:192 #185 0x00007fe8f21bd8ba in WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&)::$_3::operator()(void*) const (this=0x7fe8ff6a2250 <WebCore::MainThreadSharedTimer::singleton()::instance+16>, userData=0x7fe8ff6a2250 <WebCore::MainThreadSharedTimer::singleton()::instance+16>) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:177 #186 0x00007fe8f21bd865 in WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&)::$_3::__invoke(void*) (userData=0x7fe8ff6a2250 <WebCore::MainThreadSharedTimer::singleton()::instance+16>) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:169 #187 0x00007fe8f21bd7c9 in WTF::RunLoop::$_0::operator()(_GSource*, int (*)(void*), void*) const (this=0x191b400, source=0x191b400, callback=0x7fe8f21bd850 <WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&)::$_3::__invoke(void*)>, userData=0x7fe8ff6a2250 <WebCore::MainThreadSharedTimer::singleton()::instance+16>) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:53 #188 0x00007fe8f21bc9c5 in WTF::RunLoop::$_0::__invoke(_GSource*, int (*)(void*), void*) (source=0x191b400, callback=0x7fe8f21bd850 <WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&)::$_3::__invoke(void*)>, userData=0x7fe8ff6a2250 <WebCore::MainThreadSharedTimer::singleton()::instance+16>) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:45 #189 0x00007fe8ec32e294 in g_main_dispatch (context=0x195a9f0) at ../glib/gmain.c:3381 #190 g_main_context_dispatch (context=0x195a9f0) at ../glib/gmain.c:4099 #191 0x00007fe8ec32e638 in g_main_context_iterate (context=0x195a9f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175 #192 0x00007fe8ec32e943 in g_main_loop_run (loop=0x191dc70) at ../glib/gmain.c:4373 #193 0x00007fe8f21bcf48 in WTF::RunLoop::run() () at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:108 #194 0x00007fe8fa7d3f34 in WebKit::AuxiliaryProcessMainBase<WebKit::WebProcess, true>::run(int, char**) (this=0x7fff88fa9778, argc=4, argv=0x7fff88fa9928) at /app/webkit/Source/WebKit/Shared/AuxiliaryProcessMain.h:71 #195 0x00007fe8fa7d3a00 in WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainGtk>(int, char**) (argc=4, argv=0x7fff88fa9928) at /app/webkit/Source/WebKit/Shared/AuxiliaryProcessMain.h:97 #196 0x00007fe8fa7d376f in WebKit::WebProcessMain(int, char**) (argc=4, argv=0x7fff88fa9928) at /app/webkit/Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp:98 #197 0x00000000002018d2 in main(int, char**) (argc=4, argv=0x7fff88fa9928) at /app/webkit/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp:31
Attachments
Debugging patch that aborts when the WebKit video sink is linked from the main thread (2.05 KB, patch)
2023-03-27 04:34 PDT, Alicia Boya García
no flags
Philippe Normand
Comment 1 2022-09-04 09:45:25 PDT
EWS
Comment 2 2022-09-04 09:47:29 PDT
Committed 254143@main (d3516883ba3e): <https://commits.webkit.org/254143@main> Reviewed commits have been landed. Closing PR #4006 and removing active labels.
Radar WebKit Bug Importer
Comment 3 2022-09-04 09:48:16 PDT
Philippe Normand
Comment 4 2022-09-04 09:48:22 PDT
This will need a proper patch. I wasn't sure what to do so for now I only updated TestExpectations.
Radar WebKit Bug Importer
Comment 5 2022-09-04 09:48:35 PDT
Radar WebKit Bug Importer
Comment 6 2022-09-04 09:48:55 PDT
Philippe Normand
Comment 7 2023-02-20 08:13:28 PST
About media/media-source/media-source-unnecessary-seek-seeked.html we get an ASSERT because the mse src emits a flush-start event downstream for the video stream but at that moment decodebin3 doesn't have a video decoded plugged yet, so the event never reaches our video sink and the "task queue" never starts "aborting". Later on when the sink receives flush-stop (not sure how yet, mayybe a video decoder was plugged in the small interval of time since flush-start was attempted?) it tries to "finish abort" a "task queue" that wasn't "aborting" in the first place and ASSERTs...
Alicia Boya García
Comment 8 2023-03-27 04:24:10 PDT
(In reply to Philippe Normand from comment #7) > About media/media-source/media-source-unnecessary-seek-seeked.html we get an > ASSERT because the mse src emits a flush-start event downstream for the > video stream but at that moment decodebin3 doesn't have a video decoded > plugged yet, so the event never reaches our video sink and the "task queue" > never starts "aborting". Later on when the sink receives flush-stop (not > sure how yet, mayybe a video decoder was plugged in the small interval of > time since flush-start was attempted?) it tries to "finish abort" a "task > queue" that wasn't "aborting" in the first place and ASSERTs... Indeed. I just landed in this bug report while doing a bit of multimedia gardening and realized this is the same bug I was looking at last week. My biggest suspect for it is playsink, but I haven't finished investigating it -- I hope I can find time to continue investigating it and find a fix though.
Alicia Boya García
Comment 9 2023-03-27 04:27:05 PDT
This crash also reproduces fairly easily after a few iterations in imported/w3c/web-platform-tests/media-source/mediasource-replay.html
Alicia Boya García
Comment 10 2023-03-27 04:34:17 PDT
Created attachment 465607 [details] Debugging patch that aborts when the WebKit video sink is linked from the main thread The attached patch has helped me during debugging it, there it goes so that it doesn't get lost.
Alicia Boya García
Comment 11 2023-03-27 04:41:23 PDT
I'm renaming the issue to be more specific; and removing the regression tag, since the crash is in a debug-only assertion, and the root problem is hardly on r254142 which added handling of flushes in the WebKit video sinks. r254142 just happened to use AbortableTaskQueue that has a debug-assertion for this kind of error that was already happening.
Alicia Boya García
Comment 12 2023-07-07 07:20:20 PDT
*** Bug 258876 has been marked as a duplicate of this bug. ***
Alicia Boya García
Comment 13 2023-10-05 03:10:07 PDT
EWS
Comment 14 2023-10-06 02:58:50 PDT
Committed 268980@main (8c8512b76ac5): <https://commits.webkit.org/268980@main> Reviewed commits have been landed. Closing PR #18683 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.