RESOLVED FIXED 279957
[GTK][WPE][Skia] CPU rendering: DisplayList destructed on wrong thread
https://bugs.webkit.org/show_bug.cgi?id=279957
Summary [GTK][WPE][Skia] CPU rendering: DisplayList destructed on wrong thread
Nikolas Zimmermann
Reported 2024-09-19 00:18:38 PDT
The DisplayList recording in CoordinatedGraphicsLayerSkia happens on the main thread, and we currently try to destruct it in the worker thread -- that fires an assertion in assert-enabled builds - fix that.
Attachments
Nikolas Zimmermann
Comment 1 2024-09-19 00:19:56 PDT
Nikolas Zimmermann
Comment 2 2024-09-19 00:35:11 PDT
ToT currently asserts this way in assert-enabled builds: m_isOwnedByMainThread == isMainThread() /host/home/nzimmermann/Software/GitRepositories/WebKit/WebKitBuild/WPE/Release/WTF/Headers/wtf/RefCounted.h(124) : void WTF::RefCountedBase::applyRefDerefThreadingCheck() const 1 0x7b00d379ca11 WTF::RefCountedBase::derefAllowingPartiallyDestroyedBase() const 2 0x7b00d3c80539 WTF::HashTable<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, WTF::KeyValuePair<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > > >, WTF::DefaultHash<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> >, WTF::HashMap<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > >, WTF::DefaultHash<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> >, WTF::HashTraits<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> >, WTF::HashTraits<std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > >, WTF::HashTableTraits>::KeyValuePairTraits, WTF::HashTraits<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1> > >::deallocateTable(WTF::KeyValuePair<WTF::ObjectIdentifierGeneric<WebCore::RenderingResourceIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits<unsigned long>, unsigned long, (WTF::SupportsObjectIdentifierNullState)1>, std::variant<std::monostate, WTF::Ref<WebCore::ImageBuffer, WTF::RawPtrTraits<WebCore::ImageBuffer>, WTF::DefaultRefDerefTraits<WebCore::ImageBuffer> >, WTF::Ref<WebCore::RenderingResource, WTF::RawPtrTraits<WebCore::RenderingResource>, WTF::DefaultRefDerefTraits<WebCore::RenderingResource> >, WTF::Ref<WebCore::Font, WTF::RawPtrTraits<WebCore::Font>, WTF::DefaultRefDerefTraits<WebCore::Font> >, WTF::Ref<WebCore::FontCustomPlatformData, WTF::RawPtrTraits<WebCore::FontCustomPlatformData>, WTF::DefaultRefDerefTraits<WebCore::FontCustomPlatformData> > > >*) 3 0x7b00d646c087 WTF::Detail::CallableWrapper<WebCore::CoordinatedGraphicsLayer::paintTile(WebCore::IntRect const&, WebCore::IntRect const&, float)::{lambda()#1}, void>::~CallableWrapper() 4 0x7b00d63355fe WTF::WorkerPool::Worker::work() 5 0x7b00d626a617 WTF::Detail::CallableWrapper<WTF::AutomaticThread::start(WTF::AbstractLocker const&)::{lambda()#1}, void>::call() 6 0x7b00d62fa0b8 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) 7 0x7b00d638208d WTF::wtfThreadEntryPoint(void*) 8 0x7b00cf48aa94 start_thread 9 0x7b00cf517c3c clone3
EWS
Comment 3 2024-09-19 03:18:51 PDT
Committed 283908@main (925ebc7f5e3e): <https://commits.webkit.org/283908@main> Reviewed commits have been landed. Closing PR #33886 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.