Bug 213197 - [GStreamer] Rare racy crash when a sync bus message is handled during pipeline destruction
Summary: [GStreamer] Rare racy crash when a sync bus message is handled during pipelin...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Alicia Boya García
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-06-15 08:20 PDT by Alicia Boya García
Modified: 2020-06-25 08:15 PDT (History)
13 users (show)

See Also:


Attachments
Patch (2.88 KB, patch)
2020-06-25 02:55 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 Alicia Boya García 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
Comment 1 Alicia Boya García 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
Comment 2 Alicia Boya García 2020-06-25 02:55:15 PDT
Created attachment 402725 [details]
Patch
Comment 3 EWS 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].
Comment 4 Alicia Boya García 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?