[Webkit-unassigned] [Bug 157132] New: [FreeType] ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second in FontCache::getVerticalData()
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Apr 28 05:35:50 PDT 2016
https://bugs.webkit.org/show_bug.cgi?id=157132
Bug ID: 157132
Summary: [FreeType] ASSERTION FAILED:
!lookupForWriting(Extractor::extract(entry)).second in
FontCache::getVerticalData()
Classification: Unclassified
Product: WebKit
Version: WebKit Local Build
Hardware: Unspecified
OS: Unspecified
Status: NEW
Keywords: Gtk, LayoutTestFailure
Severity: Normal
Priority: P2
Component: Platform
Assignee: webkit-unassigned at lists.webkit.org
Reporter: cgarcia at igalia.com
CC: bugs-noreply at webkitgtk.org, darin at apple.com,
mmaxfield at apple.com, mrobinson at webkit.org
I've noticed that some tests fail randomly in the GTK+ debug bot due to an assertion in HashMap when getting vertical data from the FontCache. I don't know exactly what's wrong, but looks alike a problem with the FontVerticalDataCache hash traits implementation. Looking at the code, I've realized that we could simplify everything by reusing the FontDataCache hash and traits, since we are actually using the FontPlatformData::hash() in the end in both cases. Also, I don't see why we need to get the vertical data from the FontPlatformData while it's actually cached by the font cache. We could just using the FontCache directly passing only the FontPlatformData. These changes seem to fix the crashes and make the code a lot simpler.
See the full bt:
STDERR: ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second
STDERR: ../../Source/WTF/wtf/HashTable.h(985) : WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::ValueType* WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::reinsert(WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::ValueType&&) [with Key = WTF::AtomicString; Value = WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >; Extractor = WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >; HashFunctions = WebCore::FontVerticalDataCacheKeyHash; Traits = WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits>::KeyValuePairTraits; KeyTraits = WebCore::FontVerticalDataCacheKeyTraits; WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::ValueType = WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVert
STDERR: 1 0x7fbc12a27fcd /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x7fbc12a27fcd]
STDERR: 2 0x7fbc19e2b07f /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::HashTable<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::KeyValuePairTraits, WebCore::FontVerticalDataCacheKeyTraits>::reinsert(WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >&&)+0x89) [0x7fbc19e2b07f]
STDERR: 3 0x7fbc19e2a2b5 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::HashTable<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::KeyValuePairTraits, WebCore::FontVerticalDataCacheKeyTraits>::rehash(unsigned int, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >*)+0xf1) [0x7fbc19e2a2b5]
STDERR: 4 0x7fbc19e28cad /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::HashTable<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::KeyValuePairTraits, WebCore::FontVerticalDataCacheKeyTraits>::expand(WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >*)+0x61) [0x7fbc19e28cad]
STDERR: 5 0x7fbc19e27268 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::HashTableAddResult<WTF::HashTableIterator<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::KeyValuePairTraits, WebCore::FontVerticalDataCacheKeyTraits> > WTF::HashTable<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::Ato
STDERR: 6 0x7fbc19e24d26 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::HashTableAddResult<WTF::HashTableIterator<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::KeyValuePairTraits, WebCore::FontVerticalDataCacheKeyTraits> > WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::inlineAdd<WTF::AtomicString const&, WTF::RefPtr<WebCore::OpenTypeVertica
STDERR: 7 0x7fbc19e22836 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::HashTableAddResult<WTF::HashTableIterator<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::KeyValuePairTraits, WebCore::FontVerticalDataCacheKeyTraits> > WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::inlineSet<WTF::AtomicString const&, WTF::RefPtr<WebCore::OpenTypeVertica
STDERR: 8 0x7fbc19e202bf /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WTF::HashTableAddResult<WTF::HashTableIterator<WTF::AtomicString, WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData> > >, WebCore::FontVerticalDataCacheKeyHash, WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::KeyValuePairTraits, WebCore::FontVerticalDataCacheKeyTraits> > WTF::HashMap<WTF::AtomicString, WTF::RefPtr<WebCore::OpenTypeVerticalData>, WebCore::FontVerticalDataCacheKeyHash, WebCore::FontVerticalDataCacheKeyTraits, WTF::HashTraits<WTF::RefPtr<WebCore::OpenTypeVerticalData> > >::set<WTF::RefPtr<WebCore::OpenTypeVerticalData>&>(WTF::AtomicString const
STDERR: 9 0x7fbc19e1d566 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontCache::getVerticalData(WTF::AtomicString const&, WebCore::FontPlatformData const&)+0x144) [0x7fbc19e1d566]
STDERR: 10 0x7fbc1a7446a5 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontPlatformData::verticalData() const+0x95) [0x7fbc1a7446a5]
STDERR: 11 0x7fbc19e0f0da /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Font::Font(WebCore::FontPlatformData const&, bool, bool, bool)+0x272) [0x7fbc19e0f0da]
STDERR: 12 0x7fbc1945cbf1 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::Font::create(WebCore::FontPlatformData const&, bool, bool, bool)+0x4c) [0x7fbc1945cbf1]
STDERR: 13 0x7fbc19e1d7e3 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontCache::fontForPlatformData(WebCore::FontPlatformData const&)+0x61) [0x7fbc19e1d7e3]
STDERR: 14 0x7fbc19e1d73b /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontCache::fontForFamily(WebCore::FontDescription const&, WTF::AtomicString const&, WebCore::FontFeatureSettings const*, WebCore::FontVariantSettings const*, bool)+0xad) [0x7fbc19e1d73b]
STDERR: 15 0x7fbc1947643b /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::CSSFontSelector::fontRangesForFamily(WebCore::FontDescription const&, WTF::AtomicString const&)+0x10f) [0x7fbc1947643b]
STDERR: 16 0x7fbc19e3f4dc /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(+0x61f34dc) [0x7fbc19e3f4dc]
STDERR: 17 0x7fbc19e3f892 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontCascadeFonts::realizeFallbackRangesAt(WebCore::FontCascadeDescription const&, unsigned int)+0x18e) [0x7fbc19e3f892]
STDERR: 18 0x7fbc19997c9a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontCascadeFonts::primaryFont(WebCore::FontCascadeDescription const&)+0x68) [0x7fbc19997c9a]
STDERR: 19 0x7fbc19997d88 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontCascade::primaryFont() const+0x64) [0x7fbc19997d88]
STDERR: 20 0x7fbc19997d1a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::FontCascade::fontMetrics() const+0x18) [0x7fbc19997d1a]
STDERR: 21 0x7fbc1a245f80 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderStyle::fontMetrics() const+0x28) [0x7fbc1a245f80]
STDERR: 22 0x7fbc1a246276 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderStyle::computedLineHeight() const+0x46) [0x7fbc1a246276]
STDERR: 23 0x7fbc19fb42d6 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::lineHeight(bool, WebCore::LineDirectionMode, WebCore::LinePositionMode) const+0x144) [0x7fbc19fb42d6]
STDERR: 24 0x7fbc19fb4bc8 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlock::minLineHeightForReplacedRenderer(bool, WebCore::LayoutUnit) const+0xe8) [0x7fbc19fb4bc8]
STDERR: 25 0x7fbc1a2060c1 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::LineWidth::updateAvailableWidth(WebCore::LayoutUnit)+0x43) [0x7fbc1a2060c1]
STDERR: 26 0x7fbc1a205fca /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::LineWidth::LineWidth(WebCore::RenderBlockFlow&, bool, WebCore::IndentTextOrNot)+0xd2) [0x7fbc1a205fca]
STDERR: 27 0x7fbc1a1f9bc4 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::LineBreaker::nextLineBreak(WebCore::BidiResolverWithIsolate<WebCore::InlineIterator, WebCore::BidiRun, WebCore::BidiIsolatedRun>&, WebCore::LineInfo&, WebCore::LineLayoutState&, WebCore::RenderTextInfo&, WebCore::FloatingObject*, unsigned int, WTF::Vector<WebCore::WordMeasurement, 64ul, WTF::CrashOnOverflow, 16ul>&)+0x12c) [0x7fbc1a1f9bc4]
STDERR: 28 0x7fbc19ff6d31 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange(WebCore::LineLayoutState&, WebCore::BidiResolverWithIsolate<WebCore::InlineIterator, WebCore::BidiRun, WebCore::BidiIsolatedRun>&, WebCore::InlineIterator const&, WebCore::BidiStatus const&, unsigned int)+0x369) [0x7fbc19ff6d31]
STDERR: 29 0x7fbc19ff6943 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlockFlow::layoutRunsAndFloats(WebCore::LineLayoutState&, bool)+0x41f) [0x7fbc19ff6943]
STDERR: 30 0x7fbc19ff90ff /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlockFlow::layoutLineBoxes(bool, WebCore::LayoutUnit&, WebCore::LayoutUnit&)+0x697) [0x7fbc19ff90ff]
STDERR: 31 0x7fbc19fd7395 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebCore::RenderBlockFlow::layoutInlineChildren(bool, WebCore::LayoutUnit&, WebCore::LayoutUnit&)+0xb7) [0x7fbc19fd7395]
STDERR: LEAK: 1 WebProcessPool
STDERR: LEAK: 1 WebPageProxy
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160428/01204370/attachment-0001.html>
More information about the webkit-unassigned
mailing list