Bug 245334
Summary: | [GTK] ASSERTS in FontCache | ||
---|---|---|---|
Product: | WebKit | Reporter: | Philippe Normand <philn> |
Component: | WebKitGTK | Assignee: | Philippe Normand <philn> |
Status: | REOPENED | ||
Severity: | Normal | CC: | bugs-noreply |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified |
Philippe Normand
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 | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Philippe Normand
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
Pull request: https://github.com/WebKit/WebKit/pull/4458
EWS
Committed 254606@main (aa47ef76a7eb): <https://commits.webkit.org/254606@main>
Reviewed commits have been landed. Closing PR #4458 and removing active labels.
Philippe Normand
reopening, needs patch
EWS
Committed 254612@main (54b769e4acf3): <https://commits.webkit.org/254612@main>
Reviewed commits have been landed. Closing PR #4459 and removing active labels.
Philippe Normand
reopening, needs patch