[Webkit-unassigned] [Bug 262949] [GStreamer] Crash closing window that was using multimedia
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Oct 10 10:19:07 PDT 2023
https://bugs.webkit.org/show_bug.cgi?id=262949
--- Comment #1 from Alejandro G. Castro <alex at igalia.com> ---
Different stack, this time is a destruction, that should not be executed in the main thread. The destructor tries to disconnect the signals but I guess it does not disconnect the ones for the configuration handlers. I guess it means we need to disconnect them in more places:
#0 0x00007fa63f4ea924 in WTFCrash () at /usr/local/lib/libjavascriptcoregtk-6.0.so.1
#1 0x00007fa64312b455 in WebCore::AbortableTaskQueue::enqueueTask(WTF::Function<void ()>&&) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#2 0x00007fa6431288a4 in WebCore::TrackPrivateBaseGStreamer::installUpdateConfigurationHandlers()::{lambda(WebCore::TrackPrivateBaseGStreamer*)#1}::_FUN(WebCore::TrackPrivateBaseGStreamer*) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#3 0x00007fa63b482010 in g_closure_invoke (closure=0x560960494df0, return_value=0x0, n_param_values=2, param_values=0x7ffddfe4aba0, invocation_hint=0x7ffddfe4ab20) at ../../../gobject/gclosure.c:832
#4 0x00007fa63b4af3d6 in signal_emit_unlocked_R.isra.0
(node=node at entry=0x56095f9d8b70, detail=detail at entry=955, instance=instance at entry=0x7fa4f8088360, emission_return=emission_return at entry=0x0, instance_and_params=instance_and_params at entry=0x7ffddfe4aba0)
at ../../../gobject/gsignal.c:3802
#5 0x00007fa63b49f69a in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args at entry=0x7ffddfe4ad60) at ../../../gobject/gsignal.c:3555
#6 0x00007fa63b49f923 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../../../gobject/gsignal.c:3612
#7 0x00007fa63b48cdc4 in g_object_dispatch_properties_changed (object=0x7fa4f8088360, n_pspecs=<optimized out>, pspecs=<optimized out>) at ../../../gobject/gobject.c:1428
#8 0x00007fa63c376688 in gst_object_dispatch_properties_changed (object=0x7fa4f8088360, n_pspecs=1, pspecs=0x7ffddfe4aed0) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstobject.c:455
#9 0x00007fa63b490137 in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x7fa4f8088360) at ../../../gobject/gobject.c:1552
#10 g_object_notify_by_pspec (object=object at entry=0x7fa4f8088360, pspec=<optimized out>) at ../../../gobject/gobject.c:1658
#11 0x00007fa63c3bf94a in remove_events (pad=pad at entry=0x7fa4f8088360) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:457
#12 0x00007fa63c3c736f in post_activate (new_mode=<optimized out>, pad=<optimized out>) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:1053
#13 activate_mode_internal (pad=pad at entry=0x7fa4f8088360, parent=parent at entry=0x7fa4f80873c0, mode=mode at entry=GST_PAD_MODE_PUSH, active=active at entry=0) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:1228
#14 0x00007fa63c3c79c6 in gst_pad_set_active (pad=pad at entry=0x7fa4f8088360, active=0) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstpad.c:1119
#15 0x00007fa63c39fa15 in activate_pads (vpad=<optimized out>, ret=0x7ffddfe4b080, active=0x7ffddfe4b0dc) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3181
#16 0x00007fa63c3b697c in gst_iterator_fold (it=it at entry=0x56095fb59390, func=func at entry=0x7fa63c39f9f0 <activate_pads>, ret=ret at entry=0x7ffddfe4b080, user_data=user_data at entry=0x7ffddfe4b0dc)
at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstiterator.c:617
#17 0x00007fa63c3a0196 in iterator_activate_fold_with_resync (iter=iter at entry=0x56095fb59390, user_data=user_data at entry=0x7ffddfe4b0dc, func=0x7fa63c39f9f0 <activate_pads>)
at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3205
#18 0x00007fa63c3a2486 in gst_element_pads_activate (element=element at entry=0x7fa4f80873c0, active=<optimized out>, active at entry=0) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3249
#19 0x00007fa63c3a26b9 in gst_element_change_state_func (element=0x7fa4f80873c0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3315
#20 0x00007fa54cbf73c9 in gst_input_selector_change_state (element=0x7fa4f80873c0, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../checkout/gstreamer/subprojects/gstreamer/plugins/elements/gstinputselector.c:2069
#21 0x00007fa63c3a4934 in gst_element_change_state (element=element at entry=0x7fa4f80873c0, transition=transition at entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3093
#22 0x00007fa63c3a4f9f in gst_element_set_state_func (element=0x7fa4f80873c0, state=GST_STATE_READY) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3047
#23 0x00007fa63c38159b in gst_bin_element_set_state (next=GST_STATE_READY, current=GST_STATE_PAUSED, start_time=0, base_time=0, element=0x7fa4f80873c0, bin=0x560960483920)
at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstbin.c:2582
#24 gst_bin_change_state_func (element=0x560960483920, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstbin.c:2931
#25 0x00007fa63c3d0349 in gst_pipeline_change_state (element=0x560960483920, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstpipeline.c:529
#26 0x00007fa535c6f5fe in gst_play_bin_change_state (element=0x560960483920, transition=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../checkout/gstreamer/subprojects/gst-plugins-base/gst/playback/gstplaybin2.c:5838
#27 0x00007fa63c3a4934 in gst_element_change_state (element=element at entry=0x560960483920, transition=transition at entry=GST_STATE_CHANGE_PAUSED_TO_READY) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3093
#28 0x00007fa63c3a4f9f in gst_element_set_state_func (element=0x560960483920, state=GST_STATE_NULL) at ../../checkout/gstreamer/subprojects/gstreamer/gst/gstelement.c:3047
#29 0x00007fa64310395c in WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#30 0x00007fa6431045fd in WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#31 0x00007fa643021d62 in WebCore::MediaPlayer::~MediaPlayer() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#32 0x00007fa64200f20e in WTF::Detail::CallableWrapper<WTF::ThreadSafeWeakPtrControlBlock::strongDeref<WebCore::MediaPlayer, (WTF::DestructionThread)1>() const::{lambda()#1}, void>::call() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#33 0x00007fa6428c468e in void WTF::ThreadSafeWeakPtrControlBlock::strongDeref<WebCore::MediaPlayer, (WTF::DestructionThread)1>() const () at /usr/local/lib/libwebkitgtk-6.0.so.4
#34 0x00007fa6428babc1 in WebCore::HTMLMediaElement::clearMediaPlayer() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#35 0x00007fa6428be12f in non-virtual thunk to WebCore::HTMLMediaElement::stop() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#36 0x00007fa64268bd71 in WTF::Detail::CallableWrapper<WebCore::ScriptExecutionContext::stopActiveDOMObjects()::{lambda(auto:1&)#1}, WebCore::ScriptExecutionContext::ShouldContinue, WebCore::ActiveDOMObject&>::call(WebCore::ActiveDOMObject&) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#37 0x00007fa64268c86a in WebCore::ScriptExecutionContext::forEachActiveDOMObject(WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)> const&) const () at /usr/local/lib/libwebkitgtk-6.0.so.4
#38 0x00007fa64268c999 in WebCore::ScriptExecutionContext::stopActiveDOMObjects() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#39 0x00007fa6425cc342 in WebCore::Document::commonTeardown() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#40 0x00007fa6425db789 in WebCore::Document::willBeRemovedFromFrame() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#41 0x00007fa642d7a6d8 in WebCore::LocalFrame::setView(WTF::RefPtr<WebCore::LocalFrameView, WTF::RawPtrTraits<WebCore::LocalFrameView>, WTF::DefaultRefDerefTraits<WebCore::LocalFrameView> >&&) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#42 0x00007fa642dab5ec in WebCore::LocalFrame::createView(WebCore::IntSize const&, std::optional<WebCore::Color> const&, WebCore::IntSize const&, WebCore::IntRect const&, bool, WebCore::ScrollbarMode, bool, WebCore::ScrollbarMode, bool)
() at /usr/local/lib/libwebkitgtk-6.0.so.4
#43 0x00007fa640ecfaaa in WebKit::WebLocalFrameLoaderClient::transitionToCommittedForNewPage() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#44 0x00007fa642c4c8c2 in WebCore::FrameLoader::transitionToCommitted(WebCore::CachedPage*) [clone .part.0] () at /usr/local/lib/libwebkitgtk-6.0.so.4
#45 0x00007fa642c4ca7f in WebCore::FrameLoader::commitProvisionalLoad() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#46 0x00007fa642c1d1f7 in WebCore::DocumentLoader::commitLoad(WebCore::SharedBuffer const&) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#47 0x00007fa642cecefd in WebCore::CachedRawResource::notifyClientsDataWasReceived(WebCore::SharedBuffer const&) [clone .part.0] () at /usr/local/lib/libwebkitgtk-6.0.so.4
#48 0x00007fa642ced2cb in WebCore::CachedRawResource::updateBuffer(WebCore::FragmentedSharedBuffer const&) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#49 0x00007fa642ca972a in WebCore::SubresourceLoader::didReceiveBuffer(WebCore::FragmentedSharedBuffer const&, long long, WebCore::DataPayloadType) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#50 0x00007fa640e7363b in WebKit::WebResourceLoader::didReceiveData(IPC::SharedBufferReference&&, unsigned long) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#51 0x00007fa640814bda in WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&, IPC::Decoder&) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#52 0x00007fa640af4b25 in IPC::Connection::dispatchMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#53 0x00007fa640af6a78 in IPC::Connection::dispatchOneIncomingMessage() () at /usr/local/lib/libwebkitgtk-6.0.so.4
#54 0x00007fa63f524abe in WTF::RunLoop::performWork() () at /usr/local/lib/libjavascriptcoregtk-6.0.so.1
#55 0x00007fa63f59ee1d in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) () at /usr/local/lib/libjavascriptcoregtk-6.0.so.1
--Type <RET> for more, q to quit, c to continue without paging--
#56 0x00007fa63f59f8b3 in WTF::RunLoop::{lambda(_GSource*, int (*)(void*), void*)#1}::_FUN(_GSource*, int (*)(void*), void*) () at /usr/local/lib/libjavascriptcoregtk-6.0.so.1
#57 0x00007fa63b38136f in g_main_dispatch (context=0x56095fa10f70) at ../../../glib/gmain.c:3460
#58 g_main_context_dispatch (context=0x56095fa10f70) at ../../../glib/gmain.c:4200
#59 0x00007fa63b3dc178 in g_main_context_iterate.constprop.0 (context=0x56095fa10f70, block=<optimized out>, dispatch=1, self=<optimized out>) at ../../../glib/gmain.c:4276
#60 0x00007fa63b380bdf in g_main_loop_run (loop=0x56095fa2f720) at ../../../glib/gmain.c:4479
#61 0x00007fa63f59fa00 in WTF::RunLoop::run() () at /usr/local/lib/libjavascriptcoregtk-6.0.so.1
#62 0x00007fa640f6fdae in int WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainGtk>(int, char**) () at /usr/local/lib/libwebkitgtk-6.0.so.4
#63 0x00007fa63fc1ca90 in __libc_start_call_main (main=main at entry=0x56095dc07060 <main>, argc=argc at entry=3, argv=argv at entry=0x7ffddfe4c548) at ../sysdeps/nptl/libc_start_call_main.h:58
#64 0x00007fa63fc1cb49 in __libc_start_main_impl (main=0x56095dc07060 <main>, argc=3, argv=0x7ffddfe4c548, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffddfe4c538) at ../csu/libc-start.c:360
#65 0x000056095dc07095 in _start ()
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20231010/bf77c75d/attachment-0001.htm>
More information about the webkit-unassigned
mailing list