Bug 279957

Summary: [GTK][WPE][Skia] CPU rendering: DisplayList destructed on wrong thread
Product: WebKit Reporter: Nikolas Zimmermann <zimmermann>
Component: WPE WebKitAssignee: Nikolas Zimmermann <zimmermann>
Status: RESOLVED FIXED    
Severity: Normal CC: bugs-noreply
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 279618    

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.