REOPENED 245334
[GTK] ASSERTS in FontCache
https://bugs.webkit.org/show_bug.cgi?id=245334
Summary [GTK] ASSERTS in FontCache
Philippe Normand
Reported 2022-09-18 04:29:47 PDT
Specially in imported/w3c/web-platform-tests/html/canvas/offscreen/ tests: STDERR: ASSERTION FAILED: m_clients.contains(&client) STDERR: /app/webkit/Source/WebCore/platform/graphics/FontCache.cpp(381) : void WebCore::FontCache::removeClient(WebCore::FontSelector&) STDERR: ASSERTION FAILED: m_clients.contains(&client) STDERR: /app/webkit/Source/WebCore/platform/graphics/FontCache.cpp(381) : void WebCore::FontCache::removeClient(WebCore::FontSelector&) STDERR: ASSERTION FAILED: m_clients.contains(&client) STDERR: /app/webkit/Source/WebCore/platform/graphics/FontCache.cpp(381) : void WebCore::FontCache::removeClient(WebCore::FontSelector&) STDERR: ASSERTION FAILED: m_clients.contains(&client) STDERR: /app/webkit/Source/WebCore/platform/graphics/FontCache.cpp(381) : void WebCore::FontCache::removeClient(WebCore::FontSelector&) STDERR: ASSERTION FAILED: m_clients.contains(&client) STDERR: /app/webkit/Source/WebCore/platform/graphics/FontCache.cpp(381) : void WebCore::FontCache::removeClient(WebCore::FontSelector&)
Attachments
Philippe Normand
Comment 1 2022-09-18 05:39:30 PDT
run-webkit-tests --gtk --debug --no-retry-failures --exit-after-n-crashes-or-timeouts=2 imported/w3c/web-platform-tests/html/canvas/offscreen/text (gdb) bt #0 0x00007f28e269fc0e in WTFCrash() () at /app/webkit/Source/WTF/wtf/Assertions.cpp:328 #1 0x00007f28e993113b in WTFCrashWithInfo(int, char const*, char const*, int) () at WTF/Headers/wtf/Assertions.h:754 #2 0x00007f28eed973e9 in WebCore::FontCache::removeClient(WebCore::FontSelector&) (this=0x7f28d02d80e0, client=...) at /app/webkit/Source/WebCore/platform/graphics/FontCache.cpp:386 #3 0x00007f28ed9d4911 in WebCore::CSSFontSelector::~CSSFontSelector() (this=0x7f28d0388960) at /app/webkit/Source/WebCore/css/CSSFontSelector.cpp:102 #4 0x00007f28ed9d4a89 in WebCore::CSSFontSelector::~CSSFontSelector() (this=0x7f28d0388960) at /app/webkit/Source/WebCore/css/CSSFontSelector.cpp:96 #5 0x00007f28ed5b55ec in std::default_delete<WebCore::FontSelector>::operator()(WebCore::FontSelector*) const (this=0x7f286d7fd7d0, __ptr=0x7f28d0388960) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/unique_ptr.h:85 #6 0x00007f28ed5b55b7 in WTF::RefCounted<WebCore::FontSelector, std::default_delete<WebCore::FontSelector> >::deref() const (this=0x7f28d0388968) at WTF/Headers/wtf/RefCounted.h:190 #7 0x00007f28ed5b5542 in WTF::DefaultRefDerefTraits<WebCore::FontSelector>::derefIfNotNull(WebCore::FontSelector*) (ptr=0x7f28d0388960) at WTF/Headers/wtf/RefPtr.h:42 #8 0x00007f28ed5b5439 in WTF::RefPtr<WebCore::FontSelector, WTF::RawPtrTraits<WebCore::FontSelector>, WTF::DefaultRefDerefTraits<WebCore::FontSelector> >::~RefPtr() (this=0x7f28d0344988) at WTF/Headers/wtf/RefPtr.h:74 #9 0x00007f28eed9f6c0 in WebCore::FontCascadeFonts::~FontCascadeFonts() (this=0x7f28d0344900) at /app/webkit/Source/WebCore/platform/graphics/FontCascadeFonts.cpp:122 #10 0x00007f28eb108adb in std::default_delete<WebCore::FontCascadeFonts>::operator()(WebCore::FontCascadeFonts*) const (this=0x7f286d7fd890, __ptr=0x7f28d0344900) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/unique_ptr.h:85 #11 0x00007f28eb108aa3 in WTF::RefCounted<WebCore::FontCascadeFonts, std::default_delete<WebCore::FontCascadeFonts> >::deref() const (this=0x7f28d0344900) at WTF/Headers/wtf/RefCounted.h:190 #12 0x00007f28eeda67c9 in WTF::Ref<WebCore::FontCascadeFonts, WTF::RawPtrTraits<WebCore::FontCascadeFonts> >::~Ref() (this=0x7f28d03959d8) at WTF/Headers/wtf/Ref.h:61 #13 0x00007f28eeda88bd in WebCore::FontCascadeCacheEntry::~FontCascadeCacheEntry() (this=0x7f28d0395980) at /app/webkit/Source/WebCore/platform/graphics/FontCascadeCache.h:225 #14 0x00007f28eedb617b in std::default_delete<WebCore::FontCascadeCacheEntry>::operator()(WebCore::FontCascadeCacheEntry*) const (this=0x7f28d02ad748, __ptr=0x7f28d0395980) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/unique_ptr.h:85 #15 0x00007f28eeda888d in std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> >::~unique_ptr() (this=0x7f28d02ad748) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/unique_ptr.h:361 #16 0x00007f28eedabd3d in WTF::KeyValuePair<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > >::~KeyValuePair() (this=0x7f28d02ad6f0) at WTF/Headers/wtf/KeyValuePair.h:33 #17 0x00007f28eedabcc7 in WTF::HashTable<WebCore::FontCascadeCacheKey, WTF::KeyValuePair<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > > >, WebCore::FontCascadeCacheKeyHash, WTF::HashMap<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> >, WebCore::FontCascadeCacheKeyHash, WebCore::FontCascadeCacheKeyHashTraits, WTF::HashTraits<std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > >, WTF::HashTableTraits>::KeyValuePairTraits, WebCore::FontCascadeCacheKeyHashTraits>::deallocateTable(WTF::KeyValuePair<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > >*) (table=0x7f28d02ad450) at WTF/Headers/wtf/HashTable.h:1179 #18 0x00007f28eedabbb3 in WTF::HashTable<WebCore::FontCascadeCacheKey, WTF::KeyValuePair<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > > >, WebCore::FontCascadeCacheKeyHash, WTF::HashMap<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> >, WebCore::FontCascadeCacheKeyHash, WebCore::FontCascadeCacheKeyHashTraits, WTF::HashTraits<std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > >, WTF::HashTableTraits>::KeyValuePairTraits, WebCore::FontCascadeCacheKeyHashTraits>::~HashTable() (this=0x7f28d02d8e58) at WTF/Headers/wtf/HashTable.h:435 #19 0x00007f28eedabb75 in WTF::HashMap<WebCore::FontCascadeCacheKey, std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> >, WebCore::FontCascadeCacheKeyHash, WebCore::FontCascadeCacheKeyHashTraits, WTF::HashTraits<std::unique_ptr<WebCore::FontCascadeCacheEntry, std::default_delete<WebCore::FontCascadeCacheEntry> > >, WTF::HashTableTraits>::~HashMap() (this=0x7f28d02d8e58) at WTF/Headers/wtf/HashMap.h:35 #20 0x00007f28eeda5935 in WebCore::FontCascadeCache::~FontCascadeCache() (this=0x7f28d02d8e58) at /app/webkit/Source/WebCore/platform/graphics/FontCascadeCache.h:244 #21 0x00007f28eed95c9a in WebCore::FontCache::~FontCache() (this=0x7f28d02d8e00) at /app/webkit/Source/WebCore/platform/graphics/FontCache.cpp:152 #22 0x00007f28eec45fdb in std::default_delete<WebCore::FontCache>::operator()(WebCore::FontCache*) const (this=0x7f28d0341068, __ptr=0x7f28d02d8e00) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/unique_ptr.h:85 #23 0x00007f28eec419ad in std::unique_ptr<WebCore::FontCache, std::default_delete<WebCore::FontCache> >::~unique_ptr() (this=0x7f28d0341068) at /usr/lib/gcc/x86_64-unknown-linux-gnu/11.3.0/../../../../include/c++/11.3.0/bits/unique_ptr.h:361 #24 0x00007f28eec3eb0b in WebCore::ThreadGlobalData::~ThreadGlobalData() (this=0x7f28d0341020) at /app/webkit/Source/WebCore/platform/ThreadGlobalData.cpp:50 #25 0x00007f28eec3eb79 in WebCore::ThreadGlobalData::~ThreadGlobalData() (this=0x7f28d0341020) at /app/webkit/Source/WebCore/platform/ThreadGlobalData.cpp:50 #26 0x00007f28e29f90ff in WTF::ThreadSafeRefCounted<WTF::Thread::ClientData, (WTF::DestructionThread)0>::deref() const::{lambda()#1}::operator()() const (this=0x7f286d7fdaf0) at /app/webkit/Source/WTF/wtf/ThreadSafeRefCounted.h:117 #27 0x00007f28e29f90c7 in WTF::ThreadSafeRefCounted<WTF::Thread::ClientData, (WTF::DestructionThread)0>::deref() const (this=0x7f28d0341028) at /app/webkit/Source/WTF/wtf/ThreadSafeRefCounted.h:129 #28 0x00007f28e29f9052 in WTF::DefaultRefDerefTraits<WTF::Thread::ClientData>::derefIfNotNull(WTF::Thread::ClientData*) (ptr=0x7f28d0341020) at /app/webkit/Source/WTF/wtf/RefPtr.h:42 #29 0x00007f28e29f8d61 in WTF::RefPtr<WTF::Thread::ClientData, WTF::RawPtrTraits<WTF::Thread::ClientData>, WTF::DefaultRefDerefTraits<WTF::Thread::ClientData> >::operator=(decltype(nullptr)) (this=0x7f28d000fff0) at /app/webkit/Source/WTF/wtf/RefPtr.h:163 #30 0x00007f28e29f8439 in WTF::Thread::destructTLS(void*) (data=0x7f28d000ff60) at /app/webkit/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:562 #31 0x00007f28e311a450 in __nptl_deallocate_tsd () at pthread_create.c:311 #32 0x00007f28e311b3c4 in __nptl_deallocate_tsd () at pthread_create.c:481 #33 start_thread (arg=0x7f286d7fe640) at pthread_create.c:492 #34 0x00007f28dc5237a3 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 (gdb) info threads Id Target Id Frame * 1 Thread 0x7f286d7fe640 (LWP 300) 0x00007f28e269fc0e in WTFCrash () at /app/webkit/Source/WTF/wtf/Assertions.cpp:328 2 Thread 0x7f28da16a9c0 (LWP 283) 0x00007f28ea0e1bc2 in WTF::isValidEnum<IPC::MessageName, void> (underlyingType=1443) at DerivedSources/WebKit/MessageNames.cpp:12172 3 Thread 0x7f288d7fa640 (LWP 290) __libc_sendmsg (flags=16384, msg=0x7f288d7f9608, fd=10) at ../sysdeps/unix/sysv/linux/sendmsg.c:28 4 Thread 0x7f28d1c4d640 (LWP 285) 0x00007f28e3127e1d in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f28d1c5c690, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x7f28d1c4cad8, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74 5 Thread 0x7f287d7fe640 (LWP 294) 0x00007f28dc5171fd in __GI___poll (fds=0x6c09b0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 6 Thread 0x7f288dffb640 (LWP 288) 0x00007f28dc5171fd in __GI___poll (fds=0x7f2884005000, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 7 Thread 0x7f286dfff640 (LWP 298) 0x00007f28e3127e1d in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f28d02044e4, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x7f286dffe7c0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74 8 Thread 0x7f287cffd640 (LWP 297) 0x00007f28e3127e1d in __futex_abstimed_wait_common64 (futex_word=futex_word@entry=0x7f28d0090764, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x7f287cffc7c0, private=private@entry=0, cancel=cancel@entry=true) at ../sysdeps/nptl/futex-internal.c:74 9 Thread 0x7f288e7fc640 (LWP 287) 0x00007f28dc5171fd in __GI___poll (fds=0x7f2880003f70, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 10 Thread 0x7f287dfff640 (LWP 293) 0x00007f28dc5171fd in __GI___poll (fds=0xb27eb0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 11 Thread 0x7f288effd640 (LWP 286) 0x00007f28dc5171fd in __GI___poll (fds=0x7f2888005020, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 (gdb)
Philippe Normand
Comment 2 2022-09-18 06:47:21 PDT
EWS
Comment 3 2022-09-18 06:50:51 PDT
Committed 254606@main (aa47ef76a7eb): <https://commits.webkit.org/254606@main> Reviewed commits have been landed. Closing PR #4458 and removing active labels.
Philippe Normand
Comment 4 2022-09-18 07:01:34 PDT
reopening, needs patch
EWS
Comment 5 2022-09-18 08:39:41 PDT
Committed 254612@main (54b769e4acf3): <https://commits.webkit.org/254612@main> Reviewed commits have been landed. Closing PR #4459 and removing active labels.
Philippe Normand
Comment 6 2022-09-18 08:54:27 PDT
reopening, needs patch
Note You need to log in before you can comment on or make changes to this bug.