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: | WebRTC | Assignee: | 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
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 | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Philippe Normand
Looks like a variant of bug 308119.
Philippe Normand
*** Bug 314219 has been marked as a duplicate of this bug. ***