$ Tools/Scripts/run-perf-tests --debug Parser/html5-full-render.html Running Parser/html5-full-render.html (1 of 1) crash: PerformanceTests/Parser/html5-full-render.html error: ASSERTION FAILED: runFontData /Volumes/Data/webkit3/Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm(275) : void WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText(const UChar*, unsigned int, unsigned int, const WebCore::SimpleFontData*) 1 0x101513046 WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText(unsigned short const*, unsigned int, unsigned int, WebCore::SimpleFontData const*) 2 0x101508804 WebCore::ComplexTextController::collectComplexTextRunsForCharacters(unsigned short const*, unsigned int, unsigned int, WebCore::SimpleFontData const*) 3 0x101508cf2 WebCore::ComplexTextController::collectComplexTextRuns() 4 0x10150a5e0 WebCore::ComplexTextController::ComplexTextController(WebCore::Font const*, WebCore::TextRun const&, bool, WTF::HashSet<WebCore::SimpleFontData const*, WTF::PtrHash<WebCore::SimpleFontData const*>, WTF::HashTraits<WebCore::SimpleFontData const*> >*, bool) 5 0x101a576b5 WebCore::Font::floatWidthForComplexText(WebCore::TextRun const&, WTF::HashSet<WebCore::SimpleFontData const*, WTF::PtrHash<WebCore::SimpleFontData const*>, WTF::HashTraits<WebCore::SimpleFontData const*> >*, WebCore::GlyphOverflow*) const 6 0x101a498fb WebCore::Font::width(WebCore::TextRun const&, WTF::HashSet<WebCore::SimpleFontData const*, WTF::PtrHash<WebCore::SimpleFontData const*>, WTF::HashTraits<WebCore::SimpleFontData const*> >*, WebCore::GlyphOverflow*) const 7 0x1023d4fa8 WebCore::RenderText::widthFromCache(WebCore::Font const&, int, int, float, WTF::HashSet<WebCore::SimpleFontData const*, WTF::PtrHash<WebCore::SimpleFontData const*>, WTF::HashTraits<WebCore::SimpleFontData const*> >*, WebCore::GlyphOverflow*) const 8 0x1023ce75b WebCore::RenderText::computePreferredLogicalWidths(float, WTF::HashSet<WebCore::SimpleFontData const*, WTF::PtrHash<WebCore::SimpleFontData const*>, WTF::HashTraits<WebCore::SimpleFontData const*> >&, WebCore::GlyphOverflow&) 9 0x1023cf136 WebCore::RenderText::computePreferredLogicalWidths(float) 10 0x1023cf26c WebCore::RenderText::trimmedPrefWidths(float, float&, bool&, float&, bool&, bool&, bool&, float&, float&, float&, float&, bool&) 11 0x1022311eb WebCore::RenderBlock::computeInlinePreferredLogicalWidths() 12 0x10223166a WebCore::RenderBlock::computePreferredLogicalWidths() 13 0x1023bafa1 WebCore::RenderTableCell::computePreferredLogicalWidths() 14 0x101443897 WebCore::AutoTableLayout::recalcColumn(unsigned int) 15 0x1014440bc WebCore::AutoTableLayout::fullRecalc() 16 0x10144537d WebCore::AutoTableLayout::computePreferredLogicalWidths(int&, int&) 17 0x1023b0593 WebCore::RenderTable::computePreferredLogicalWidths() 18 0x10227db0d WebCore::RenderBox::maxPreferredLogicalWidth() const 19 0x1023b26cf WebCore::RenderTable::computeLogicalWidth() 20 0x1023b16fd WebCore::RenderTable::layout() 21 0x10224269f WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox*, WebCore::RenderBlock::MarginInfo&, int&, int&) 22 0x1022440c8 WebCore::RenderBlock::layoutBlockChildren(bool, int&) 23 0x102244841 WebCore::RenderBlock::layoutBlock(bool, int, WebCore::RenderBlock::BlockLayoutPass) 24 0x10223ca95 WebCore::RenderBlock::layout() 25 0x10224269f WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox*, WebCore::RenderBlock::MarginInfo&, int&, int&) 26 0x1022440c8 WebCore::RenderBlock::layoutBlockChildren(bool, int&) 27 0x102244841 WebCore::RenderBlock::layoutBlock(bool, int, WebCore::RenderBlock::BlockLayoutPass) 28 0x10223ca95 WebCore::RenderBlock::layout() 29 0x10224269f WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox*, WebCore::RenderBlock::MarginInfo&, int&, int&) 30 0x1022440c8 WebCore::RenderBlock::layoutBlockChildren(bool, int&) 31 0x102244841 WebCore::RenderBlock::layoutBlock(bool, int, WebCore::RenderBlock::BlockLayoutPass)
Can you specify the platform and the OS version?
(In reply to comment #1) > Can you specify the platform and the OS version? Snow Leopard.
<rdar://problem/11025217>
Looks like Core Text is acting up. We should not make this assertion, and if runFontData turns out to be 0, we should use the CTFont as returned (rather than doing the name lookup).
Created attachment 131542 [details] Handle the case of Core Text returning a fallback font that NSFontManager cannot find by name
Note that the test doesn’t trigger the assertion in all configurations, but that’s the closest I’ve been able to get.
Comment on attachment 131542 [details] Handle the case of Core Text returning a fallback font that NSFontManager cannot find by name View in context: https://bugs.webkit.org/attachment.cgi?id=131542&action=review > Source/WebCore/ChangeLog:17 > + (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Removed the > + failing assertion, which was not true, and added code to handle the case where a font > + cannot be found by name by using the font as returned from Core Text. The assertion is still there, did you mean to remove it?
(In reply to comment #7) > (From update of attachment 131542 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=131542&action=review > > > Source/WebCore/ChangeLog:17 > > + (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Removed the > > + failing assertion, which was not true, and added code to handle the case where a font > > + cannot be found by name by using the font as returned from Core Text. > > The assertion is still there, did you mean to remove it? I did, thanks! I’m going to do it before committing.
Fixed in <http://trac.webkit.org/r110642>.