WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
267411
REGRESSION(
272844@main
): [GStreamer][Debug] ASSERTION FAILED: isMainThread() in WebCore::MediaStreamTrackPrivate::source()
https://bugs.webkit.org/show_bug.cgi?id=267411
Summary
REGRESSION(272844@main): [GStreamer][Debug] ASSERTION FAILED: isMainThread() ...
Vitaly Dyackhov
Reported
2024-01-11 07:42:06 PST
Since
272844@main
, we allow MediaStreamTrackPrivate to work out of main thread. It made ASSERT(isMainThread()) to fail in many tests. Incomplete list of crashing tests: fast/mediastream/RTCPeerConnection-addIceCandidate.html fast/mediastream/RTCPeerConnection-addTransceiver.html fast/mediastream/RTCPeerConnection-icecandidate-event.html fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html fast/mediastream/RTCPeerConnection-localDescription.html fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html http/wpt/mediarecorder/MediaRecorder-multiple-start-stop.html http/wpt/mediarecorder/MediaRecorder-video-bitrate.html http/wpt/mediarecorder/MediaRecorder-video-h264-profiles.html http/wpt/mediarecorder/pause-recording-timeSlice.html http/wpt/mediarecorder/pause-recording.html http/wpt/mediarecorder/set-srcObject-MediaStream-Blob.html http/wpt/mediarecorder/video-rotation.html imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https.html imported/w3c/web-platform-tests/webrtc-stats/outbound-rtp.https.html media/now-playing-status-for-video-conference-web-page.html Example of the stack trace: Thread 1 (Thread 0x7fcccd7fa6c0 (LWP 79484)): #0 WTFCrash() () at /app/webkit/Source/WTF/wtf/Assertions.cpp:333 #1 0x00007fcfd4f67610 in WTFCrashWithInfo(int, char const*, char const*, int) () at /app/webkit/WebKitBuild/WPE/Debug/WTF/Headers/wtf/Assertions.h:778 #2 0x00007fcfdd767987 in WebCore::MediaStreamTrackPrivate::source() (this=0x7fcfb959f240) at /app/webkit/Source/WebCore/platform/mediastream/MediaStreamTrackPrivate.cpp:454 #3 0x00007fcfdd7df8ca in InternalSource::videoFrameAvailable(WebCore::VideoFrame&, WebCore::VideoFrameTimeMetadata) (this=0x7fcfb9419ea0, videoFrame=...) at /app/webkit/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:404 #4 0x00007fcfdd76ab4a in WebCore::RealtimeMediaSource::videoFrameAvailable(WebCore::VideoFrame&, WebCore::VideoFrameTimeMetadata) (this=0x7fcf770d7400, videoFrame=..., metadata=...) at /app/webkit/Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:358 #5 0x00007fcfdd7b9c37 in WebCore::RealtimeVideoCaptureSource::dispatchVideoFrameToObservers(WebCore::VideoFrame&, WebCore::VideoFrameTimeMetadata) (this=0x7fcf770d7400, videoFrame=..., metadata=...) at /app/webkit/Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:391 #6 0x00007fcfdd80c342 in operator()<WTF::Ref<WebCore::VideoFrameGStreamer> >(WTF::Ref<WebCore::VideoFrameGStreamer, WTF::RawPtrTraits<WebCore::VideoFrameGStreamer> >&&) const (__closure=0x7fcfb93541b8, videoFrame=...) at /app/webkit/Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:72 #7 0x00007fcfdd80c382 in WTF::Detail::CallableWrapper<WebCore::MockRealtimeVideoSourceGStreamer::MockRealtimeVideoSourceGStreamer(WTF::String&&, WTF::AtomString&&, WebCore::MediaDeviceHashSalts&&)::<lambda(auto:83&&)>, void, WTF::Ref<WebCore::VideoFrameGStreamer, WTF::RawPtrTraits<WebCore::VideoFrameGStreamer> >&&>::call(WTF::Ref<WebCore::VideoFrameGStreamer, WTF::RawPtrTraits<WebCore::VideoFrameGStreamer> > &&) (this=0x7fcfb93541b0, in#0=...) at /app/webkit/WebKitBuild/WPE/Debug/WTF/Headers/wtf/Function.h:53 #8 0x00007fcfdd7f706d in WTF::Function<void (WTF::Ref<WebCore::VideoFrameGStreamer, WTF::RawPtrTraits<WebCore::VideoFrameGStreamer> >&&)>::operator()(WTF::Ref<WebCore::VideoFrameGStreamer, WTF::RawPtrTraits<WebCore::VideoFrameGStreamer> >&&) const (this=0x7fcfb92e30e8, in#0=...) at /app/webkit/WebKitBuild/WPE/Debug/WTF/Headers/wtf/Function.h:82 #9 0x00007fcfdd7eda45 in operator()(WebCore::GStreamerVideoCapturer*, GstElement*) const (__closure=0x0, capturer=0x7fcfb92e3020, sink=0x56225375e1b0 [GstElement|Video_capturer_webkitappsinkwithworkarounds75_7FCFB92E3020]) at /app/webkit/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:64 #10 0x00007fcfdd7edaa9 in _FUN(WebCore::GStreamerVideoCapturer*, GstElement*) () at /app/webkit/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:64 #11 0x00007fcfc342c056 in ffi_call_unix64 () at ../src/x86/unix64.S:104 #12 0x00007fcfc342ab5d in ffi_call_int (cif=cif@entry=0x7fcccd7f9410, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673 #13 0x00007fcfc342b313 in ffi_call (cif=cif@entry=0x7fcccd7f9410, fn=fn@entry=0x7fcfdd7eda84 <_FUN(WebCore::GStreamerVideoCapturer*, GstElement*)>, rvalue=rvalue@entry=0x7fcccd7f9370, avalue=avalue@entry=0x7fcccd7f9330) at ../src/x86/ffi64.c:710 #14 0x00007fcfc8e44b43 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:1650 #15 0x00007fcfc8e5ea83 in _g_closure_invoke_va (param_types=0x0, n_params=<optimized out>, args=0x7fcccd7f9620, instance=0x56225375e1b0, return_value=<optimized out>, closure=<optimized out>) at ../gobject/gclosure.c:895 #16 g_signal_emit_valist (instance=<optimized out>, signal_id=29, detail=<optimized out>, var_args=var_args@entry=0x7fcccd7f9620) at ../gobject/gsignal.c:3472 #17 0x00007fcfc8e5ec03 in g_signal_emit (instance=instance@entry=0x56225375e1b0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3622 #18 0x00007fcfc6367603 in gst_app_sink_render_common (psink=0x56225375e1b0 [GstBaseSink|Video_capturer_webkitappsinkwithworkarounds75_7FCFB92E3020], data=0x56225377aab0 [None], is_list=<optimized out>) at ../gst-libs/gst/app/gstappsink.c:1109 #19 0x00007fcfc633ce0d in gst_base_sink_chain_unlocked.isra.0 (basesink=0x56225375e1b0 [GstBaseSink|Video_capturer_webkitappsinkwithworkarounds75_7FCFB92E3020], obj=0x56225377aab0, is_list=0, pad=<optimized out>) at ../libs/gst/base/gstbasesink.c:3955 #20 0x00007fcfc630acce in gst_base_sink_chain_main (basesink=0x56225375e1b0 [GstBaseSink|Video_capturer_webkitappsinkwithworkarounds75_7FCFB92E3020], pad=<optimized out>, obj=0x56225377aab0, is_list=0) at ../libs/gst/base/gstbasesink.c:4081 #21 0x00007fcfca1cfeec in gst_pad_chain_data_unchecked (pad=pad@entry=0x5622537576e0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x56225377aab0) at ../gst/gstpad.c:4486 #22 0x00007fcfca1d328e in gst_pad_push_data (pad=pad@entry=0x5622537acfd0 [GstPad|src], type=type@entry=4112, data=data@entry=0x56225377aab0) at ../gst/gstpad.c:4762 #23 0x00007fcfca1d38c4 in gst_pad_push (pad=0x5622537acfd0 [GstPad|src], buffer=buffer@entry=0x56225377aab0 [None]) at ../gst/gstpad.c:4881 #24 0x00007fcf507d8de9 in gst_queue_push_one (queue=0x562253725b00 [GstQueue|queue75]) at ../plugins/elements/gstqueue.c:1388 #25 gst_queue_loop (pad=<optimized out>) at ../plugins/elements/gstqueue.c:1541 #26 0x00007fcfca200204 in gst_task_func (task=0x5622535e1af0 [GstTask|queue75:src]) at ../gst/gsttask.c:384 #27 0x00007fcfca3c04f2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:350 #28 0x00007fcfca3bd862 in g_thread_proxy (data=0x7fcf4c000ed0) at ../glib/gthread.c:831 #29 0x00007fcfc9c29e39 in start_thread (arg=<optimized out>) at pthread_create.c:444 #30 0x00007fcfc9cb18c4 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
Attachments
Add attachment
proposed patch, testcase, etc.
Vitaly Dyackhov
Comment 1
2024-01-11 07:58:40 PST
Pull request:
https://github.com/WebKit/WebKit/pull/22662
EWS
Comment 2
2024-01-11 08:02:16 PST
Test gardening commit
272912@main
(048dbb19e05f): <
https://commits.webkit.org/272912@main
> Reviewed commits have been landed. Closing PR #22662 and removing active labels.
Philippe Normand
Comment 3
2024-01-11 10:45:46 PST
Pull request:
https://github.com/WebKit/WebKit/pull/22668
Vitaly Dyackhov
Comment 4
2024-01-12 01:07:40 PST
More failing tests: fast/mediastream/RTCPeerConnection-inspect-offer.html fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-disabled-tracks.https.html
Vitaly Dyackhov
Comment 5
2024-01-12 01:08:45 PST
Pull request:
https://github.com/WebKit/WebKit/pull/22699
EWS
Comment 6
2024-01-12 01:12:14 PST
Test gardening commit
272961@main
(b2e452415ac2): <
https://commits.webkit.org/272961@main
> Reviewed commits have been landed. Closing PR #22699 and removing active labels.
Vitaly Dyackhov
Comment 7
2024-01-16 03:32:53 PST
More tests: fast/mediastream/RTCPeerConnection-overloaded-operations.html webrtc/addTransceiver-then-addTrack.html webrtc/audio-muted-stats.html webrtc/audio-peer-connection-g722.html webrtc/audio-peer-connection-webaudio.html webrtc/audio-replace-track.html webrtc/audio-samplerate-change.html webrtc/canvas-to-peer-connection-2d.html webrtc/captureCanvas-webrtc-software-h264-baseline.html webrtc/captureCanvas-webrtc-software-h264-high.html webrtc/captureCanvas-webrtc.html webrtc/clone-audio-track.html webrtc/concurrentVideoPlayback.html webrtc/concurrentVideoPlayback2.html webrtc/connection-state.html webrtc/ephemeral-certificates-and-cnames.html webrtc/h264-baseline.html webrtc/h265.html webrtc/legacy-api.html webrtc/libwebrtc/descriptionGetters.html webrtc/msection-recycling.html webrtc/multi-audio.html webrtc/multi-video.html webrtc/no-port-zero-in-upd-candidates.html webrtc/peer-connection-audio-mute2.html
Vitaly Dyackhov
Comment 8
2024-01-16 03:40:58 PST
Pull request:
https://github.com/WebKit/WebKit/pull/22814
EWS
Comment 9
2024-01-16 03:44:27 PST
Test gardening commit
273060@main
(4312e693b8d8): <
https://commits.webkit.org/273060@main
> Reviewed commits have been landed. Closing PR #22814 and removing active labels.
Vitaly Dyackhov
Comment 10
2024-01-17 01:05:05 PST
webrtc/audio-peer-connection-g722.html webrtc/canvas-to-peer-connection.html webrtc/peer-connection-audio-mute.html webrtc/peer-connection-audio-unmute.html webrtc/peer-connection-createMediaStreamDestination.html webrtc/peer-connection-remote-audio-mute.html webrtc/peer-connection-remote-audio-mute2.html webrtc/peer-connection-track-end.html webrtc/peerconnection-page-cache-long.html webrtc/peerconnection-page-cache.html webrtc/receiver-track-should-stay-live-even-if-receiver-is-inactive.html webrtc/release-after-getting-track.html webrtc/remoteAudio-never-played.html
Vitaly Dyackhov
Comment 11
2024-01-17 01:15:24 PST
Pull request:
https://github.com/WebKit/WebKit/pull/22857
EWS
Comment 12
2024-01-17 01:19:17 PST
Test gardening commit
273119@main
(af9d3ff330ef): <
https://commits.webkit.org/273119@main
> Reviewed commits have been landed. Closing PR #22857 and removing active labels.
Vitaly Dyackhov
Comment 13
2024-01-19 01:35:53 PST
fast/mediastream/RTCPeerConnection-createAnswer.html http/wpt/mediarecorder/mimeType.html webrtc/utf8-sdp.html webrtc/video-addTrack.html webrtc/video-autoplay.html webrtc/video-clone-track.html webrtc/video-getParameters.html webrtc/video-maxBitrate-vp8.html webrtc/video-maxBitrate.html webrtc/video-maxFramerate.html webrtc/video-mute-vp8.html webrtc/video-mute.html webrtc/video-receivers.html webrtc/video-remote-mute.html webrtc/video-replace-muted-track.html
Vitaly Dyackhov
Comment 14
2024-01-19 01:47:43 PST
Pull request:
https://github.com/WebKit/WebKit/pull/22967
EWS
Comment 15
2024-01-19 01:52:20 PST
Test gardening commit
273216@main
(1f209ea914f1): <
https://commits.webkit.org/273216@main
> Reviewed commits have been landed. Closing PR #22967 and removing active labels.
Vitaly Dyackhov
Comment 16
2024-01-22 02:08:59 PST
fast/mediastream/RTCPeerConnection-addTrack-reuse-sender.html webrtc/captureCanvas-webrtc-with-video-scaling-adaptation.html webrtc/libwebrtc/release-while-creating-offer.html webrtc/video-replace-track-to-null.html webrtc/video-rotation-no-cvo.html webrtc/video-rotation.html webrtc/video-stats.html webrtc/video-unmute.html webrtc/video-with-data-channel.html webrtc/video.html webrtc/vp8-then-h264-gpu-process-crash.html webrtc/vp9-profile2.html webrtc/vp9.html
Vitaly Dyackhov
Comment 17
2024-01-22 02:22:56 PST
Pull request:
https://github.com/WebKit/WebKit/pull/23037
EWS
Comment 18
2024-01-22 02:26:45 PST
Test gardening commit
273291@main
(8a64069be24e): <
https://commits.webkit.org/273291@main
> Reviewed commits have been landed. Closing PR #23037 and removing active labels.
EWS
Comment 19
2024-01-22 02:52:07 PST
Committed
273292@main
(4dab5e97eee3): <
https://commits.webkit.org/273292@main
> Reviewed commits have been landed. Closing PR #22668 and removing active labels.
Radar WebKit Bug Importer
Comment 20
2024-01-22 02:53:15 PST
<
rdar://problem/121363741
>
Diego Pino
Comment 21
2024-01-22 06:53:30 PST
Re-opening for pull request
https://github.com/webkit/webkit/pull/23040
EWS
Comment 22
2024-01-22 08:51:17 PST
Committed
273303@main
(ac6c0cf26ac8): <
https://commits.webkit.org/273303@main
> Reviewed commits have been landed. Closing PR #23040 and removing active labels.
Philippe Normand
Comment 23
2024-09-20 07:00:58 PDT
Why is gardening still done on this bug? Are the ASSERTs still an issue?
Vitaly Dyackhov
Comment 24
2024-09-24 08:25:30 PDT
These ASSERTs are fixed. And we don't do gardening on this. Looks like, Diego re-opened it to push one land a related PR.
Philippe Normand
Comment 25
2024-09-24 11:00:56 PDT
I was confused after seeing a PR from Ziran about this bug, but it's been sorted out.
EWS
Comment 26
2024-09-25 01:33:03 PDT
Test gardening commit
284213@main
(b76a2f9653e8): <
https://commits.webkit.org/284213@main
> Reviewed commits have been landed. Closing PR #34169 and removing active labels.
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