[Webkit-unassigned] [Bug 258132] New: [GStreamer] MediaPlayerPrivateGStreamer::sourceSetup() can be called from a non-main thread in some cases

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jun 15 07:32:07 PDT 2023


https://bugs.webkit.org/show_bug.cgi?id=258132

            Bug ID: 258132
           Summary: [GStreamer] MediaPlayerPrivateGStreamer::sourceSetup()
                    can be called from a non-main thread in some cases
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKitGTK
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: aboya at igalia.com
                CC: bugs-noreply at webkitgtk.org

Reproducible in Debug with http/tests/media/video-cross-site.html:

ASSERTION FAILED: !m_impl || !m_shouldEnableAssertions || Thread::mayBeGCThread() || m_impl->wasConstructedOnMainThread() == isMainThread()

#0  0x00007f20a70be1fe in WTFCrash() () at /app/webkit/Source/WTF/wtf/Assertions.cpp:327
#1  0x00007f20aec1395b in WTFCrashWithInfo(int, char const*, char const*, int) () at WTF/Headers/wtf/Assertions.h:762
#2  0x00007f20b0925f87 in WTF::WeakPtr<WebCore::MediaPlayer, WTF::DefaultWeakPtrImpl>::get() const (this=0x7f2093125c40) at WTF/Headers/wtf/WeakPtr.h:126
#3  0x00007f20b0908603 in WebCore::MediaPlayerPrivateGStreamer::sourceSetup(_GstElement*) (this=0x7f2093125c00, sourceElement=0x7f05fc0389e0) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:891
#4  0x00007f20b0908781 in WebCore::MediaPlayerPrivateGStreamer::sourceSetupCallback(WebCore::MediaPlayerPrivateGStreamer*, _GstElement*) (player=0x7f2093125c00, sourceElement=0x7f05fc0389e0) at /app/webkit/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:903
#5  0x00007f20a35b27d7 in g_cclosure_marshal_VOID__OBJECTv (closure=0x265cab0, return_value=<optimized out>, instance=0x265bcf0, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=<optimized out>) at ../gobject/gmarshal.c:1910
#6  0x00007f20a35d2480 in _g_closure_invoke_va (param_types=<optimized out>, n_params=<optimized out>, args=0x7f071d7f8020, instance=0x265bcf0, return_value=<optimized out>, closure=0x265cab0) at ../gobject/gclosure.c:893
#7  g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args at entry=0x7f071d7f8020) at ../gobject/gsignal.c:3440
#8  0x00007f20a35d25b3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3587
#9  0x00007f205032ce26 in source_setup_cb (uridecodebin=0x7f05e002d140, source=0x7f05fc0389e0, group=0x265beb8) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gstplaybin2.c:5245
#10 0x00007f20a35b27d7 in g_cclosure_marshal_VOID__OBJECTv (closure=0x7f05fc023af0, return_value=<optimized out>, instance=0x7f05e002d140, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=<optimized out>) at ../gobject/gmarshal.c:1910
#11 0x00007f20a35d2480 in _g_closure_invoke_va (param_types=<optimized out>, n_params=<optimized out>, args=0x7f071d7f8310, instance=0x7f05e002d140, return_value=<optimized out>, closure=0x7f05fc023af0) at ../gobject/gclosure.c:893
#12 g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args at entry=0x7f071d7f8310) at ../gobject/gsignal.c:3440
#13 0x00007f20a35d25b3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3587
#14 0x00007f20502fadbb in gen_source_element (decoder=0x7f05e002d140) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gsturidecodebin.c:1433
#15 0x00007f20502f9a7e in setup_source (decoder=0x7f05e002d140) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gsturidecodebin.c:2285
#16 0x00007f20502f8132 in gst_uri_decode_bin_change_state (element=0x7f05e002d140, transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gsturidecodebin.c:2920
#17 0x00007f20a01c9c53 in gst_element_change_state (element=0x7f05e002d140, transition=GST_STATE_CHANGE_READY_TO_PAUSED) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:3101
#18 0x00007f20a01c9950 in gst_element_continue_state (element=0x7f05e002d140, ret=GST_STATE_CHANGE_SUCCESS) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2809
#19 0x00007f20a01c9fe0 in gst_element_change_state (element=0x7f05e002d140, transition=GST_STATE_CHANGE_NULL_TO_READY) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:3140
#20 0x00007f20a01cc545 in gst_element_set_state_func (element=0x7f05e002d140, state=GST_STATE_PAUSED) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:3055
#21 0x00007f20a01c92d2 in gst_element_set_state (element=0x7f05e002d140, state=GST_STATE_PAUSED) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2956
#22 0x00007f2050329b33 in activate_group (playbin=0x265bcf0, group=0x265beb8, target=GST_STATE_PAUSED) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gstplaybin2.c:5490
#23 0x00007f20503280ee in setup_next_source (playbin=0x265bcf0, target=GST_STATE_PAUSED) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gstplaybin2.c:5715
#24 0x00007f2050325eb7 in gst_play_bin_handle_message (bin=0x265bcf0, msg=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gstplaybin2.c:3038
#25 0x00007f20a0197bc6 in bin_bus_handler (bus=0x22861e0, message=0x7f05fc013f40 [None], bin=0x265bcf0) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbin.c:3263
#26 0x00007f20a01a37aa in gst_bus_post (bus=0x22861e0, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbus.c:357
#27 0x00007f20a01cd3f1 in gst_element_post_message_default (element=0x230a290, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2127
#28 0x00007f20a018eff8 in gst_bin_post_message (element=0x230a290, msg=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbin.c:2789
#29 0x00007f20a01c83e9 in gst_element_post_message (element=0x230a290, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2170
#30 0x00007f20a0192a46 in gst_bin_handle_message_func (bin=0x230a290, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbin.c:4041
#31 0x00007f20502f866f in handle_message (bin=0x230a290, msg=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gsturidecodebin.c:2614
#32 0x00007f20a0197bc6 in bin_bus_handler (bus=0x1faaf30, message=0x7f05fc013f40 [None], bin=0x230a290) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbin.c:3263
#33 0x00007f20a01a37aa in gst_bus_post (bus=0x1faaf30, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbus.c:357
#34 0x00007f20a01cd3f1 in gst_element_post_message_default (element=0x22bb2b0, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2127
#35 0x00007f20a018eff8 in gst_bin_post_message (element=0x22bb2b0, msg=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbin.c:2789
#36 0x00007f20a01c83e9 in gst_element_post_message (element=0x22bb2b0, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2170
#37 0x00007f20a0192a46 in gst_bin_handle_message_func (bin=0x22bb2b0, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbin.c:4041
#38 0x00007f20502d4215 in gst_decode_bin_handle_message (bin=0x22bb2b0, msg=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c:5653
#39 0x00007f20a0197bc6 in bin_bus_handler (bus=0x2385aa0, message=0x7f05fc013f40 [None], bin=0x22bb2b0) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbin.c:3263
#40 0x00007f20a01a37aa in gst_bus_post (bus=0x2385aa0, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstbus.c:357
#41 0x00007f20a01cd3f1 in gst_element_post_message_default (element=0x7f05ec086ab0, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2127
#42 0x00007f20a01c83e9 in gst_element_post_message (element=0x7f05ec086ab0, message=0x7f05fc013f40 [None]) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2170
#43 0x00007f20a01c8a27 in gst_element_message_full_with_details (element=0x7f05ec086ab0, type=GST_MESSAGE_ERROR, domain=3860, code=9, text=0x7f05fc01c860 "This file contains no playable streams.", debug=0x7f05fc01c8c0 "\214\337^\f\002\177", file=0x7f202c403403 "../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c", function=0x7f202c40a9af "gst_qtdemux_post_no_playable_stream_error", line=510, structure=0x7f05fc01ee30) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gstelement.c:2306
#44 0x00007f202c37cbdc in gst_qtdemux_post_no_playable_stream_error (qtdemux=0x7f05ec086ab0) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c:507
#45 0x00007f202c377d9c in gst_qtdemux_loop (pad=0x7f05e00965c0) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gst-plugins-good/gst/isomp4/qtdemux.c:7353
#46 0x00007f20a024bca5 in gst_task_func (task=0x1e9e710) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gsttask.c:384
#47 0x00007f20a024ccda in default_func (tdata=0x7f05e00714c0, pool=0x262b900) at ../../Tools/flatpak/local-projects/subprojects/gstreamer-full/subprojects/gstreamer/gst/gsttaskpool.c:70
#48 0x00007f20a1353692 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:350
#49 0x00007f20a1350722 in g_thread_proxy (data=0x7f05ec00c0c0) at ../glib/gthread.c:827
#50 0x00007f20a088f1da in start_thread (arg=<optimized out>) at pthread_create.c:442
#51 0x00007f20a0917f44 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100

-- 
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/20230615/83ea24c8/attachment-0001.htm>


More information about the webkit-unassigned mailing list