Bug 313410

Summary: [GStreamer] Several tests crash with assertions enabled due to deref'ing WebCore::RiceBackendClient from the wrong thread
Product: WebKit Reporter: Claudio Saavedra <csaavedra>
Component: WebRTCAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: aboya, calvaris, eocanha, philn, vwatermeier, youennf, zimmermann
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=308119

Claudio Saavedra
Reported 2026-04-27 03:19:06 PDT
For example https://ews-build.s3-us-west-2.amazonaws.com/GTK-WK2-Tests-EWS/ad774b05-131320/results.html Test: imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-plan-b-is-not-supported.html Thread 1 (Thread 0x7f43a25d56c0 (LWP 508279)): #0 WTFCrash () at ../../../Source/WTF/wtf/Assertions.cpp:380 #1 0x00007f49e01f6dbb in WTFCrashWithSecurityImplication () at ../../../Source/WTF/wtf/Assertions.cpp:409 #2 0x00007f49f10dcc87 in WTF::assertIsCurrent (threadLikeAssertion=...) at WTF/Headers/wtf/ThreadAssertions.h:163 #3 0x00007f49f10e1a63 in WTF::RefCountDebuggerImpl<(WTF::RefCountIsThreadSafe)0>::applyRefDerefThreadingCheck (this=0x7f43b8329a84, refCount=2) at WTF/Headers/wtf/RefCountDebugger.h:130 #4 0x00007f49f10e0e3a in WTF::RefCountDebuggerImpl<(WTF::RefCountIsThreadSafe)0>::willDeref (this=0x7f43b8329a84, refCount=2) at WTF/Headers/wtf/RefCountDebugger.h:156 #5 0x00007f49f10df032 in WTF::RefCountedBase::derefBase (this=0x7f43b8329a80) at WTF/Headers/wtf/RefCounted.h:59 #6 0x00007f49f432af14 in WTF::RefCounted<WebCore::RiceBackendClient>::deref (this=0x7f43b8329a80) at WTF/Headers/wtf/RefCounted.h:82 #7 0x00007f49f4322f95 in WTF::DefaultRefDerefTraits<WebCore::RiceBackendClient>::derefIfNotNull (ptr=0x7f43b8329a80) at WTF/Headers/wtf/Ref.h:67 #8 0x00007f49f431e05e in WTF::RefPtr<WebCore::RiceBackendClient, WTF::RawPtrTraits<WebCore::RiceBackendClient>, WTF::DefaultRefDerefTraits<WebCore::RiceBackendClient> >::~RefPtr (this=0x55e85b48e9a0, __in_chrg=<optimized out>) at WTF/Headers/wtf/RefPtr.h:116 #9 0x00007f49f7baab44 in _WebKitGstIceAgentPrivate::~_WebKitGstIceAgentPrivate (this=0x55e85b48e9a0, __in_chrg=<optimized out>) at ../../../Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceAgent.cpp:80 #10 0x00007f49f7baab8d in webkit_gst_webrtc_ice_backend_finalize (object=0x55e85b48ea80) at ../../../Source/WebCore/Modules/mediastream/gstreamer/GStreamerIceAgent.cpp:122 #11 0x00007f49e0c73720 in g_object_unref (_object=0x55e85b48ea80) at ../../../../../jhbuild/checkout/glib/gobject/gobject.c:4486 #12 0x00007f49d9d6ac70 in gst_object_unref (object=<optimized out>) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstobject.c:269 #13 0x00007f496440fd77 in gst_webrtc_bin_dispose (object=0x55e85f995a60) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gst-plugins-bad/ext/webrtc/gstwebrtcbin.c:9014 #14 0x00007f49e0c733fb in g_object_unref (_object=_object@entry=0x55e85f995a60) at ../../../../../jhbuild/checkout/glib/gobject/gobject.c:4415 #15 0x00007f49d9d6ac70 in gst_object_unref (object=object@entry=0x55e85f995a60) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstobject.c:269 #16 0x00007f49d9d7489f in gst_bin_remove_func (bin=0x55e8601f5dd0, element=<optimized out>) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstbin.c:1817 #17 0x00007f49d9d739af in gst_bin_remove (bin=bin@entry=0x55e8601f5dd0, element=0x55e85f995a60) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstbin.c:1868 #18 0x00007f49d9d73cb3 in gst_bin_dispose (object=0x55e8601f5dd0) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstbin.c:527 #19 0x00007f49e0c733fb in g_object_unref (_object=0x55e8601f5dd0) at ../../../../../jhbuild/checkout/glib/gobject/gobject.c:4415 #20 0x00007f49d9d6ac70 in gst_object_unref (object=<optimized out>) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstobject.c:269 #21 0x00007f49d9e0667d in gst_call_async_func (data=0x55e86010e730, user_data=<optimized out>) at ../../../../../jhbuild/checkout/gstreamer/subprojects/gstreamer/gst/gstutils.c:5065 #22 0x00007f49e0b941e2 in g_thread_pool_thread_proxy (data=<optimized out>) at ../../../../../jhbuild/checkout/glib/glib/gthreadpool.c:336 #23 0x00007f49e0b93bd1 in g_thread_proxy (data=0x7f496c00df20) at ../../../../../jhbuild/checkout/glib/glib/gthread.c:892 #24 0x00007f49e1e8aaa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447 #25 0x00007f49e1f17c6c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78 Also in EWS: https://ews-build.s3-us-west-2.amazonaws.com/GTK-WK2-Tests-EWS/ad774b05-131320/results.html webrtc/datachannel/multiple-connections.html and in Debug too https://build.webkit.org/results/GTK-Linux-64-bit-Debug-Tests/311836@main%20(18765)/results.html Seems not very frequent but clearly something to fix.
Attachments
Philippe Normand
Comment 1 2026-04-27 03:43:48 PDT
Looks like a variant of bug 308119.
Philippe Normand
Comment 2 2026-05-07 00:55:16 PDT
*** Bug 314219 has been marked as a duplicate of this bug. ***
Note You need to log in before you can comment on or make changes to this bug.