WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
213197
[GStreamer] Rare racy crash when a sync bus message is handled during pipeline destruction
https://bugs.webkit.org/show_bug.cgi?id=213197
Summary
[GStreamer] Rare racy crash when a sync bus message is handled during pipelin...
Alicia Boya García
Reported
2020-06-15 08:20:52 PDT
I found this crash once while bisecting gstreamer, after running the same tests thousands of times, so it's probably a bit rare in practice. It crashes on ASSERT(m_isValid.load()) in MainThreadNotifier::notify(). m_isValid is set to false as part of MediaPlayerPrivateGStreamer.cpp destructor, *after* removing GstBus message handlers but *before* the pipeline is set to NULL state. But, even if the main thread just removed all the GstBus message handlers, a streaming thread may happen already be executing MediaPlayerPrivateGStreamer::handleSyncMessage() since before the handlers were removed, and then it could use m_notifier->notify(), just after it has been invalidated, making the assert fail. Thread 1 (Thread 0x7f1cdeffe700 (LWP 253)): #0 0x00007f1d410fda26 in WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:293 #1 0x00007f1d4f20cad2 in CRASH_WITH_INFO(...) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713 #2 0x00007f1d53a3517c in WebCore::MainThreadNotifier<WebCore::MediaPlayerPrivateGStreamer::MainThreadNotification>::notify<WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage(GstMessage*)::<lambda()> >(WebCore::MediaPlayerPrivateGStreamer::MainThreadNotification, WebCore::MediaPlayerPrivateGStreamer::<lambda()> &&) (this=0x7f1cdde80430, notificationType=WebCore::MediaPlayerPrivateGStreamer::StreamCollectionChanged, callbackFunctor=...) at ../../Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h:48 #3 0x00007f1d53a2a086 in WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage(_GstMessage*) (this=0x7f1cdde77b40, message=0x7f1ccc00f410 [GstMessage]) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1611 #4 0x00007f1d53a29bb3 in WebCore::MediaPlayerPrivateGStreamer::<lambda(GstBus*, GstMessage*, gpointer)>::operator()(GstBus *, GstMessage *, gpointer) const (__closure=0x0, message=0x7f1ccc00f410 [GstMessage], userData=0x7f1cdde77b40) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1578 #5 0x00007f1d53a29bfe in WebCore::MediaPlayerPrivateGStreamer::<lambda(GstBus*, GstMessage*, gpointer)>::_FUN(GstBus *, GstMessage *, gpointer) () at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1584 #6 0x00007f1d3ae85d0b in gst_bus_post (bus=bus@entry=0x559fe9a9ef30 [GstBus], message=message@entry=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbus.c:359 #7 0x00007f1d3ae9acb6 in gst_element_post_message_default (element=element@entry=0x559fe9e6c460 [GstPlayBin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2067 #8 0x00007f1d3ae76b9e in gst_bin_post_message (element=0x559fe9e6c460 [GstPlayBin3], msg=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstmessage.h:376 #9 0x00007f1d3ae9e16a in gst_element_post_message (element=element@entry=0x559fe9e6c460 [GstPlayBin3], message=message@entry=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2110 #10 0x00007f1d3ae76ecb in gst_bin_handle_message_func (bin=0x559fe9e6c460 [GstPlayBin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbin.c:4076 #11 0x00007f1d3aec6d64 in gst_pipeline_handle_message (bin=0x559fe9e6c460 [GstPlayBin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpipeline.c:647 #12 0x00007f1cf4101115 in gst_play_bin3_handle_message (bin=0x559fe9e6c460 [GstPlayBin3], msg=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gst-plugins-base/gst/playback/gstplaybin3.c:2556 #13 0x00007f1d3ae744c8 in bin_bus_handler (bus=<optimized out>, message=<optimized out>, bin=<optimized out>) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbin.c:3286 #14 0x00007f1d3ae85d0b in gst_bus_post (bus=bus@entry=0x559fe9da8040 [GstBus], message=message@entry=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbus.c:359 #15 0x00007f1d3ae9acb6 in gst_element_post_message_default (element=element@entry=0x559fe9e86e80 [GstURIDecodeBin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2067 #16 0x00007f1d3ae76b9e in gst_bin_post_message (element=0x559fe9e86e80 [GstURIDecodeBin3], msg=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstmessage.h:376 #17 0x00007f1d3ae9e16a in gst_element_post_message (element=element@entry=0x559fe9e86e80 [GstURIDecodeBin3], message=message@entry=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2110 #18 0x00007f1d3ae76ecb in gst_bin_handle_message_func (bin=0x559fe9e86e80 [GstURIDecodeBin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbin.c:4076 #19 0x00007f1d3ae744c8 in bin_bus_handler (bus=<optimized out>, message=<optimized out>, bin=<optimized out>) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbin.c:3286 #20 0x00007f1d3ae85d0b in gst_bus_post (bus=bus@entry=0x7f1cd0002e80 [GstBus], message=message@entry=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbus.c:359 #21 0x00007f1d3ae9acb6 in gst_element_post_message_default (element=element@entry=0x559fea20a030 [GstDecodebin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2067 #22 0x00007f1d3ae76b9e in gst_bin_post_message (element=0x559fea20a030 [GstDecodebin3], msg=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstmessage.h:376 #23 0x00007f1d3ae9e16a in gst_element_post_message (element=element@entry=0x559fea20a030 [GstDecodebin3], message=message@entry=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2110 #24 0x00007f1d3ae76ecb in gst_bin_handle_message_func (bin=0x559fea20a030 [GstDecodebin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbin.c:4076 #25 0x00007f1cf40d5527 in gst_decodebin3_handle_message (bin=0x559fea20a030 [GstDecodebin3], message=0x7f1ccc00f410 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c:1494 #26 0x00007f1d3ae744c8 in bin_bus_handler (bus=<optimized out>, message=<optimized out>, bin=<optimized out>) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbin.c:3286 #27 0x00007f1d3ae85d0b in gst_bus_post (bus=bus@entry=0x7f1cd0002b80 [GstBus], message=message@entry=0x7f1ccc00f090 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstbus.c:359 #28 0x00007f1d3ae9acb6 in gst_element_post_message_default (element=element@entry=0x7f1c10010920 [GstParseBin], message=0x7f1ccc00f090 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2067 #29 0x00007f1d3ae76b9e in gst_bin_post_message (element=0x7f1c10010920 [GstParseBin], msg=0x7f1ccc00f090 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstmessage.h:376 #30 0x00007f1d3ae9e16a in gst_element_post_message (element=0x7f1c10010920 [GstParseBin], message=message@entry=0x7f1ccc00f090 [GstMessage]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstelement.c:2110 #31 0x00007f1cf40ed26b in gst_parse_bin_expose (parsebin=parsebin@entry=0x7f1c10010920 [GstParseBin]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gst-plugins-base/gst/playback/gstparsebin.c:3524 #32 0x00007f1cf40edb90 in source_pad_blocked_cb (pad=pad@entry=0x7f1ccc012040 [GstPad], info=info@entry=0x7f1cdeffd050, user_data=<optimized out>) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gst-plugins-base/gst/playback/gstparsebin.c:3880 #33 0x00007f1d3aeb7a7e in probe_hook_marshal (hook=0x7f1ccc00a300, data=0x7f1cdeffcf20) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:3637 #34 0x00007f1d3a57b896 in g_hook_list_marshal (hook_list=hook_list@entry=0x7f1ccc0120d8, may_recurse=may_recurse@entry=1, marshaller=marshaller@entry=0x7f1d3aeb7660 <probe_hook_marshal>, data=data@entry=0x7f1cdeffcf20) at ../glib/ghook.c:672 #35 0x00007f1d3aeb70fe in do_probe_callbacks (pad=pad@entry=0x7f1ccc012040 [GstPad], info=info@entry=0x7f1cdeffd050, defaultval=defaultval@entry=GST_FLOW_OK) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:3800 #36 0x00007f1d3aebb47b in gst_pad_push_data (pad=pad@entry=0x7f1ccc012040 [GstPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4633 #37 0x00007f1d3aec27f3 in gst_pad_push (pad=0x7f1ccc012040 [GstPad], buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4774 #38 0x00007f1d3aeb963f in gst_pad_chain_data_unchecked (pad=pad@entry=0x559fea211d80 [GstPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4399 #39 0x00007f1d3aebb7a1 in gst_pad_push_data (pad=pad@entry=0x7f1ccc010510 [GstProxyPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4655 #40 0x00007f1d3aec27f3 in gst_pad_push (pad=pad@entry=0x7f1ccc010510 [GstProxyPad], buffer=buffer@entry=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4774 #41 0x00007f1d3aea6853 in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstghostpad.c:127 #42 0x00007f1d3aeb963f in gst_pad_chain_data_unchecked (pad=pad@entry=0x559fe9e85cb0 [GstGhostPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4399 #43 0x00007f1d3aebb7a1 in gst_pad_push_data (pad=pad@entry=0x7f1ccc0102b0 [GstProxyPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4655 #44 0x00007f1d3aec27f3 in gst_pad_push (pad=pad@entry=0x7f1ccc0102b0 [GstProxyPad], buffer=buffer@entry=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4774 #45 0x00007f1d3aea6853 in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstghostpad.c:127 #46 0x00007f1d3aeb963f in gst_pad_chain_data_unchecked (pad=pad@entry=0x559fe9e85a30 [GstGhostPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4399 #47 0x00007f1d3aebb7a1 in gst_pad_push_data (pad=pad@entry=0x559fe9e857b0 [GstGhostPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4655 #48 0x00007f1d3aec27f3 in gst_pad_push (pad=pad@entry=0x559fe9e857b0 [GstGhostPad], buffer=buffer@entry=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4774 #49 0x00007f1d3aea6853 in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstghostpad.c:127 #50 0x00007f1d3aeb963f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f1ccc010050 [GstProxyPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4399 #51 0x00007f1d3aebb7a1 in gst_pad_push_data (pad=pad@entry=0x559fea211b30 [GstPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4655 #52 0x00007f1d3aec27f3 in gst_pad_push (pad=0x559fea211b30 [GstPad], buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4774 #53 0x00007f1d3aeb963f in gst_pad_chain_data_unchecked (pad=pad@entry=0x559fea2118e0 [GstPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4399 #54 0x00007f1d3aebb7a1 in gst_pad_push_data (pad=pad@entry=0x559fe9e85530 [GstGhostPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4655 #55 0x00007f1d3aec27f3 in gst_pad_push (pad=pad@entry=0x559fe9e85530 [GstGhostPad], buffer=buffer@entry=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4774 #56 0x00007f1d3aea6853 in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstghostpad.c:127 #57 0x00007f1d50917aa7 in WebCore::webkitMediaStreamSrcChain(GstPad*, GstObject*, GstBuffer*) (pad=0x559fe9e87cf0 [GstProxyPad], parent=0x559fe9e85530 [GstGhostPad], buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:479 #58 0x00007f1d3aeb963f in gst_pad_chain_data_unchecked (pad=pad@entry=0x559fe9e87cf0 [GstProxyPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4399 #59 0x00007f1d3aebb7a1 in gst_pad_push_data (pad=pad@entry=0x559fea210660 [GstPad], type=type@entry=4112, data=data@entry=0x7f1c1000b7e0) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4655 #60 0x00007f1d3aec27f3 in gst_pad_push (pad=pad@entry=0x559fea210660 [GstPad], buffer=0x7f1c1000b7e0 [GstBuffer]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gstpad.c:4774 #61 0x00007f1d3afc1e3d in gst_base_src_loop (pad=0x559fea210660 [GstPad]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/libs/gst/base/gstbasesrc.c:2974 #62 0x00007f1d3aef0f0f in gst_task_func (task=0x559fe9e7a5f0 [GstTask]) at ../../../home/ntrrgc/Apps/gst-1.16/subprojects/gstreamer/gst/gsttask.c:328 #63 0x00007f1d3a5b6004 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354 #64 0x00007f1d3a5b5761 in g_thread_proxy (data=0x559fe9db2360) at ../glib/gthread.c:807 #65 0x00007f1d3b6185e2 in start_thread (arg=<optimized out>) at pthread_create.c:479 #66 0x00007f1d39299473 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Attachments
Patch
(2.88 KB, patch)
2020-06-25 02:55 PDT
,
Alicia Boya García
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Alicia Boya García
Comment 1
2020-06-25 02:32:50 PDT
I found another instance of this crash, albeit this time not from a bus message handler, but from the GL video sink preroll handler. The underlying issue is the same though, m_notifier being used on the background while MediaPlayerPrivateGStreamer destructor is running. Thread 1 (Thread 0x7f255e55a700 (LWP 17949)): #0 0x00007f260848e3b2 in WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:295 #1 0x00007f2616705732 in CRASH_WITH_INFO(...) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713 #2 0x00007f261af6d7cc in WebCore::MainThreadNotifier<WebCore::MediaPlayerPrivateGStreamer::MainThreadNotification>::notify<WebCore::MediaPlayerPrivateGStreamer::triggerRepaint(GstSample*)::<lambda()> >(WebCore::MediaPlayerPrivateGStreamer::MainThreadNotification, WebCore::MediaPlayerPrivateGStreamer::<lambda()> &&) (this=0x7f258637b1c0, notificationType=WebCore::MediaPlayerPrivateGStreamer::SizeChanged, callbackFunctor=...) at ../../Source/WebCore/platform/graphics/gstreamer/MainThreadNotifier.h:48 #3 0x00007f261af69880 in WebCore::MediaPlayerPrivateGStreamer::triggerRepaint(_GstSample*) (this=0x7f2586359c00, sample=0x561b879ed670 [GstSample]) at ../../Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:3012 #4 0x00007f261af4f589 in <lambda(GstElement*, WebCore::MediaPlayerPrivateGStreamer*)>::operator()(GstElement *, WebCore::MediaPlayerPrivateGStreamer *) const (__closure=0x0, sink=0x561b87ff9e10 [GstAppSink|webkit-gl-video-appsink], player=0x7f2586359c00) at ../../Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:231 #5 0x00007f261af4f5dc in <lambda(GstElement*, WebCore::MediaPlayerPrivateGStreamer*)>::_FUN(GstElement *, WebCore::MediaPlayerPrivateGStreamer *) () at ../../Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp:231 #6 0x00007f260006eb78 in ffi_call_unix64 () at ../src/x86/unix64.S:76 #7 0x00007f260006e374 in ffi_call (cif=cif@entry=0x7f255e558180, fn=fn@entry=0x7f261af4f5b7 <<lambda(GstElement*, WebCore::MediaPlayerPrivateGStreamer*)>::_FUN(GstElement *, WebCore::MediaPlayerPrivateGStreamer *)>, rvalue=<optimized out>, avalue=avalue@entry=0x7f255e5580b0) at ../src/x86/ffi64.c:525 #8 0x00007f26019da866 in g_cclosure_marshal_generic_va (closure=<optimized out>, return_value=<optimized out>, instance=<optimized out>, args_list=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=<optimized out>) at ../gobject/gclosure.c:1614 #9 0x00007f26019d9ab6 in _g_closure_invoke_va (closure=0x561b87ad6780, return_value=0x7f255e558370, instance=0x561b87ff9e10, args=0x7f255e558420, n_params=0, param_types=0x0) at ../gobject/gclosure.c:873 #10 0x00007f26019f8b68 in g_signal_emit_valist (instance=0x561b87ff9e10, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7f255e558420) at ../gobject/gsignal.c:3407 #11 0x00007f26019f9113 in g_signal_emit (instance=instance@entry=0x561b87ff9e10, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554 #12 0x00007f260235a8b8 in gst_app_sink_preroll (psink=0x561b87ff9e10 [GstAppSink|webkit-gl-video-appsink], buffer=<optimized out>) at ../gst-libs/gst/app/gstappsink.c:806 #13 0x00007f260230a751 in gst_base_sink_do_preroll (sink=sink@entry=0x561b87ff9e10 [GstAppSink|webkit-gl-video-appsink], obj=obj@entry=0x7f255409d7e0 [GstBuffer]) at ../libs/gst/base/gstbasesink.c:2447 #14 0x00007f260230b1c4 in gst_base_sink_do_sync (basesink=basesink@entry=0x561b87ff9e10 [GstAppSink|webkit-gl-video-appsink], obj=obj@entry=0x7f255409d7e0 [GstBuffer], late=late@entry=0x7f255e558730, step_end=step_end@entry=0x7f255e558734) at ../libs/gst/base/gstbasesink.c:2667 #15 0x00007f260230c85d in gst_base_sink_chain_unlocked (basesink=basesink@entry=0x561b87ff9e10 [GstAppSink|webkit-gl-video-appsink], obj=obj@entry=0x7f255409d7e0, is_list=is_list@entry=0, pad=<optimized out>) at ../libs/gst/base/gstbasesink.c:3616 #16 0x00007f260230db08 in gst_base_sink_chain_main (basesink=0x561b87ff9e10 [GstAppSink|webkit-gl-video-appsink], pad=<optimized out>, obj=0x7f255409d7e0, is_list=0) at ../libs/gst/base/gstbasesink.c:3775 #17 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f25380270a0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #18 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f255409ae40 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #19 0x00007f2602217493 in gst_pad_push (pad=0x7f255409ae40 [GstPad|src], buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #20 0x00007f2602318420 in gst_base_transform_chain (pad=<optimized out>, parent=0x561b87f1cb30 [GstGLColorConvertElement|glcolorconvertelement10], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2330 #21 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f2538093860 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #22 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f2538183a10 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #23 0x00007f2602217493 in gst_pad_push (pad=0x7f2538183a10 [GstPad|src], buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #24 0x00007f2602318420 in gst_base_transform_chain (pad=<optimized out>, parent=0x561b87f1c7c0 [GstGLUploadElement|gluploadelement10], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2330 #25 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f25440193a0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #26 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f2594030a40 [GstProxyPad|proxypad166], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #27 0x00007f2602217493 in gst_pad_push (pad=pad@entry=0x7f2594030a40 [GstProxyPad|proxypad166], buffer=buffer@entry=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #28 0x00007f26021fb69b in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstghostpad.c:127 #29 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f2538194950 [GstGhostPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #30 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f253802e350 [GstProxyPad|proxypad167], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #31 0x00007f2602217493 in gst_pad_push (pad=pad@entry=0x7f253802e350 [GstProxyPad|proxypad167], buffer=buffer@entry=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #32 0x00007f26021fb69b in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstghostpad.c:127 #33 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f2538194e50 [GstGhostPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #34 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f25380955b0 [GstGhostPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #35 0x00007f2602217493 in gst_pad_push (pad=pad@entry=0x7f25380955b0 [GstGhostPad|src], buffer=buffer@entry=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #36 0x00007f26021fb69b in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstghostpad.c:127 #37 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f25380eb8e0 [GstProxyPad|proxypad176], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #38 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f25540e8740 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #39 0x00007f2602217493 in gst_pad_push (pad=0x7f25540e8740 [GstPad|src], buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #40 0x00007f2602318420 in gst_base_transform_chain (pad=<optimized out>, parent=0x7f255400d0d0 [GstVideoConvert|conv2], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2330 #41 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f25540e84f0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #42 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f2538093610 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #43 0x00007f2602217493 in gst_pad_push (pad=0x7f2538093610 [GstPad|src], buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #44 0x00007f2602318420 in gst_base_transform_chain (pad=<optimized out>, parent=0x7f25540158e0 [GstVideoBalance|videobalance], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2330 #45 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f253801cd00 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #46 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f25440185c0 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #47 0x00007f2602217493 in gst_pad_push (pad=0x7f25440185c0 [GstPad|src], buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #48 0x00007f2602318420 in gst_base_transform_chain (pad=<optimized out>, parent=0x7f25541448d0 [GstVideoScale|scale], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2330 #49 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f255409b2e0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #50 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f25540e8050 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #51 0x00007f2602217493 in gst_pad_push (pad=0x7f25540e8050 [GstPad|src], buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #52 0x00007f2602318420 in gst_base_transform_chain (pad=<optimized out>, parent=0x7f25540e7c10 [GstVideoConvert|conv], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2330 #53 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f25540e82a0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #54 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f2554024080 [GstProxyPad|proxypad175], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #55 0x00007f2602217493 in gst_pad_push (pad=pad@entry=0x7f2554024080 [GstProxyPad|proxypad175], buffer=buffer@entry=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #56 0x00007f26021fb69b in gst_proxy_pad_chain_default (pad=<optimized out>, parent=<optimized out>, buffer=0x7f255409d7e0 [GstBuffer]) at ../gst/gstghostpad.c:127 #57 0x00007f260220e43f in gst_pad_chain_data_unchecked (pad=pad@entry=0x7f2538095330 [GstGhostPad|sink], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4327 #58 0x00007f26022105a1 in gst_pad_push_data (pad=pad@entry=0x7f255401ae40 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f255409d7e0) at ../gst/gstpad.c:4583 #59 0x00007f2602217493 in gst_pad_push (pad=0x7f255401ae40 [GstPad|src], buffer=buffer@entry=0x7f255409d7e0 [GstBuffer]) at ../gst/gstpad.c:4702 #60 0x00007f25bc2d8d44 in gst_queue_push_one (queue=0x561b87c689b0 [GstQueue|vqueue]) at ../plugins/elements/gstqueue.c:1384 #61 0x00007f25bc2d8d44 in gst_queue_loop (pad=<optimized out>) at ../plugins/elements/gstqueue.c:1537 #62 0x00007f2602245be7 in gst_task_func (task=0x7f255409d170 [GstTask|vqueue:src]) at ../gst/gsttask.c:328 #63 0x00007f2601918004 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:354 #64 0x00007f2601917761 in g_thread_proxy (data=0x561b87c16d20) at ../glib/gthread.c:807 #65 0x00007f260296a5e2 in start_thread (arg=<optimized out>) at pthread_create.c:479 #66 0x00007f26005fb473 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Alicia Boya García
Comment 2
2020-06-25 02:55:15 PDT
Created
attachment 402725
[details]
Patch
EWS
Comment 3
2020-06-25 06:02:19 PDT
Committed
r263504
: <
https://trac.webkit.org/changeset/263504
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 402725
[details]
.
Alicia Boya García
Comment 4
2020-06-25 08:15:51 PDT
Somehow I still got the latter crash traceback again. How is it possible that the WebKitGLVideoSink is still running a streaming thread after the pipeline has been set to NULL state?
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug