RESOLVED FIXED 275583
[GTK][WPE] DRMDeviceNode needs to be ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=275583
Summary [GTK][WPE] DRMDeviceNode needs to be ThreadSafeRefCounted
Nikolas Zimmermann
Reported 2024-06-17 14:23:10 PDT
(process:2581181): GLib-GObject-CRITICAL **: 22:13:44.946: g_signal_connect_object: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed ERROR: Failed to make thread real time: GDBus.Error:org.freedesktop.DBus.Error.Failed: No such file or directory /host/home/nzimmermann/Software/GitRepositories/WebKit/Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t) ERROR: Failed to make thread real time: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code1: Could not map pid: Process ids could not be found: 2581258 /host/home/nzimmermann/Software/GitRepositories/WebKit/Source/WTF/wtf/linux/RealTimeThreads.cpp(224) : void WTF::RealTimeThreads::realTimeKitMakeThreadRealTime(uint64_t, uint64_t, uint32_t) ASSERTION FAILED: Unsafe to ref/deref from different threads m_isOwnedByMainThread == isMainThread() /host/home/nzimmermann/Software/GitRepositories/WebKit/WebKitBuild/WPE/Debug/WTF/Headers/wtf/RefCounted.h(119) : void WTF::RefCountedBase::applyRefDerefThreadingCheck() const 1 0x7ef967eef599 WTF::RefCountedBase::applyRefDerefThreadingCheck() const 2 0x7ef967f0da70 WTF::RefCountedBase::refAllowingPartiallyDestroyed() const 3 0x7ef967f0db84 WTF::RefCountedBase::ref() const 4 0x7ef9698c3d0b WTF::DefaultRefDerefTraits<WebCore::DRMDeviceNode>::refIfNotNull(WebCore::DRMDeviceNode*) 5 0x7ef9698c24d0 WTF::RefPtr<WebCore::DRMDeviceNode, WTF::RawPtrTraits<WebCore::DRMDeviceNode>, WTF::DefaultRefDerefTraits<WebCore::DRMDeviceNode> >::RefPtr(WTF::RefPtr<WebCore::DRMDeviceNode, WTF::RawPtrTraits<WebCore::DRMDeviceNode>, WTF::DefaultRefDerefTraits<WebCore::DRMDeviceNode> > const&) 6 0x7ef970afbff6 WebCore::DRMDeviceManager::mainDeviceNode(WebCore::DRMDeviceManager::NodeType) const 7 0x7ef970afc070 WebCore::DRMDeviceManager::mainGBMDeviceNode(WebCore::DRMDeviceManager::NodeType) const 8 0x7ef970afce14 WebCore::GBMBufferSwapchain::getBuffer(WebCore::GBMBufferSwapchain::BufferDescription const&) 9 0x7ef970b52985 WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor() 10 0x7ef970b548c5 WebCore::MediaPlayerPrivateGStreamer::triggerRepaint(WTF::GRefPtr<_GstSample>&&) ...
Attachments
Philippe Normand
Comment 1 2024-06-18 00:50:59 PDT
*** Bug 274152 has been marked as a duplicate of this bug. ***
Alexey Proskuryakov
Comment 2 2024-06-18 14:06:47 PDT
Is this actually sufficient for it to be thread safe? It seems like even naively, DRMDeviceNode would be the next one to assert when ref'ing DRMDeviceManager members.
Carlos Garcia Campos
Comment 3 2024-07-01 05:18:02 PDT
EWS
Comment 4 2024-07-01 06:34:33 PDT
Committed 280530@main (14d24d0067bb): <https://commits.webkit.org/280530@main> Reviewed commits have been landed. Closing PR #30341 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.