RESOLVED FIXED 99452
REGRESSION (r131365): platform/gtk/fonts/font-face-with-complex-text.html is failing an assertion
https://bugs.webkit.org/show_bug.cgi?id=99452
Summary REGRESSION (r131365): platform/gtk/fonts/font-face-with-complex-text.html is ...
Zan Dobersek
Reported 2012-10-16 04:19:58 PDT
platform/gtk/fonts/font-face-with-complex-text.html is crashing since r131365 has landed. http://trac.webkit.org/changeset/131365 http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&tests=platform%2Fgtk%2Ffonts%2Ffont-face Here's the crash log: Crash log for DumpRenderTree (pid 16781): ... [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/Programs/DumpR'. Program terminated with signal 11, Segmentation fault. #0 0x00007fba5834ef80 in WebCore::SimpleFontData::applyTransforms (this=0x2c4efb0, glyphs=0x7fff2ee99990, advances=0x7fff2eea59a8, glyphCount=49, typesettingFeatures=3) at ../../Source/WebCore/platform/graphics/SimpleFontData.h:206 206 ASSERT_NOT_REACHED(); ... Thread 1 (Thread 0x7fba4cf1d900 (LWP 16781)): #0 0x00007fba5834ef80 in WebCore::SimpleFontData::applyTransforms (this=0x2c4efb0, glyphs=0x7fff2ee99990, advances=0x7fff2eea59a8, glyphCount=49, typesettingFeatures=3) at ../../Source/WebCore/platform/graphics/SimpleFontData.h:206 #1 0x00007fba5834ea9a in WebCore::applyFontTransforms (glyphBuffer=0x7fff2ee95960, ltr=true, lastGlyphCount=@0x7fff2ee8166c: 0, fontData=0x2c4efb0, typesettingFeatures=3, charactersTreatedAsSpace=WTF::Vector of length 24, capacity 64 = {...}) at ../../Source/WebCore/platform/graphics/WidthIterator.cpp:124 #2 0x00007fba58351840 in WebCore::WidthIterator::advanceInternal<WebCore::SurrogatePairAwareTextIterator> (this=0x7fff2ee81840, textIterator=..., glyphBuffer=0x7fff2ee95960) at ../../Source/WebCore/platform/graphics/WidthIterator.cpp:311 #3 0x00007fba5834ed3f in WebCore::WidthIterator::advance (this=0x7fff2ee81840, offset=49, glyphBuffer=0x7fff2ee95960) at ../../Source/WebCore/platform/graphics/WidthIterator.cpp:336 #4 0x00007fba582edbba in WebCore::Font::getGlyphsAndAdvancesForSimpleText (this=0x2c23800, run=..., from=0, to=49, glyphBuffer=..., forTextEmphasis=WebCore::Font::NotForTextEmphasis) at ../../Source/WebCore/platform/graphics/FontFastPath.cpp:336 #5 0x00007fba582edd6c in WebCore::Font::drawSimpleText (this=0x2c23800, context=0x7fff2eeac4c0, run=..., point=..., from=0, to=49) at ../../Source/WebCore/platform/graphics/FontFastPath.cpp:363 #6 0x00007fba58eb853e in WebCore::Font::drawComplexText (this=0x2c23800, context=0x7fff2eeac4c0, run=..., point=..., from=0, to=49) at ../../Source/WebCore/platform/graphics/pango/FontPango.cpp:286 #7 0x00007fba582e946a in WebCore::Font::drawText (this=0x2c23800, context=0x7fff2eeac4c0, run=..., point=..., from=0, to=49) at ../../Source/WebCore/platform/graphics/Font.cpp:166 #8 0x00007fba5830980b in WebCore::GraphicsContext::drawText (this=0x7fff2eeac4c0, font=..., run=..., point=..., from=0, to=49) at ../../Source/WebCore/platform/graphics/GraphicsContext.cpp:385 #9 0x00007fba58451431 in WebCore::paintTextWithShadows (context=0x7fff2eeac4c0, font=..., textRun=..., emphasisMark="(null)", emphasisMarkOffset=0, startOffset=0, endOffset=49, truncationPoint=49, textOrigin=..., boxRect=..., shadow=0x0, stroked=false, horizontal=true) at ../../Source/WebCore/rendering/InlineTextBox.cpp:422 #10 0x00007fba5845339f in WebCore::InlineTextBox::paint (this=0x2950518, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/InlineTextBox.cpp:722 #11 0x00007fba58445a83 in WebCore::InlineFlowBox::paint (this=0x25a3f98, paintInfo=..., paintOffset=..., lineTop=..., lineBottom=...) at ../../Source/WebCore/rendering/InlineFlowBox.cpp:1092 #12 0x00007fba58626b19 in WebCore::RootInlineBox::paint (this=0x25a3f98, paintInfo=..., paintOffset=..., lineTop=..., lineBottom=...) at ../../Source/WebCore/rendering/RootInlineBox.cpp:211 #13 0x00007fba5857e803 in WebCore::RenderLineBoxList::paint (this=0x2c2e8d0, renderer=0x2c2e838, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderLineBoxList.cpp:262 #14 0x00007fba5846adaf in WebCore::RenderBlock::paintContents (this=0x2c2e838, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2927 #15 0x00007fba5846b901 in WebCore::RenderBlock::paintObject (this=0x2c2e838, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:3045 #16 0x00007fba584690e8 in WebCore::RenderBlock::paint (this=0x2c2e838, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2761 #17 0x00007fba5846b2ac in WebCore::RenderBlock::paintChild (this=0x2c27798, child=0x2c2e838, paintInfo=..., paintOffset=..., paintInfoForChild=..., usePrintRect=false) at ../../Source/WebCore/rendering/RenderBlock.cpp:2978 #18 0x00007fba5846aee5 in WebCore::RenderBlock::paintChildren (this=0x2c27798, paintInfo=..., paintOffset=..., paintInfoForChild=..., usePrintRect=false) at ../../Source/WebCore/rendering/RenderBlock.cpp:2947 #19 0x00007fba5846ae89 in WebCore::RenderBlock::paintContents (this=0x2c27798, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2940 #20 0x00007fba5846b901 in WebCore::RenderBlock::paintObject (this=0x2c27798, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:3045 #21 0x00007fba584690e8 in WebCore::RenderBlock::paint (this=0x2c27798, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2761 #22 0x00007fba5846b2ac in WebCore::RenderBlock::paintChild (this=0x27515a8, child=0x2c27798, paintInfo=..., paintOffset=..., paintInfoForChild=..., usePrintRect=false) at ../../Source/WebCore/rendering/RenderBlock.cpp:2978 #23 0x00007fba5846aee5 in WebCore::RenderBlock::paintChildren (this=0x27515a8, paintInfo=..., paintOffset=..., paintInfoForChild=..., usePrintRect=false) at ../../Source/WebCore/rendering/RenderBlock.cpp:2947 #24 0x00007fba5846ae89 in WebCore::RenderBlock::paintContents (this=0x27515a8, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2940 #25 0x00007fba5846b901 in WebCore::RenderBlock::paintObject (this=0x27515a8, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:3045 #26 0x00007fba584690e8 in WebCore::RenderBlock::paint (this=0x27515a8, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2761 #27 0x00007fba585528eb in WebCore::RenderLayer::paintLayerContents (this=0x29beb68, rootLayer=0x29c0068, context=0x7fff2eeac4c0, parentPaintDirtyRect=..., subPixelAccumulation=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0x7fff2eeac150, paintFlags=224) at ../../Source/WebCore/rendering/RenderLayer.cpp:3272 #28 0x00007fba58551aea in WebCore::RenderLayer::paintLayerContentsAndReflection (this=0x29beb68, rootLayer=0x29c0068, context=0x7fff2eeac4c0, paintDirtyRect=..., subPixelAccumulation=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0x7fff2eeac150, paintFlags=224) at ../../Source/WebCore/rendering/RenderLayer.cpp:3115 #29 0x00007fba5855197a in WebCore::RenderLayer::paintLayer (this=0x29beb68, rootLayer=0x29c0068, context=0x7fff2eeac4c0, paintDirtyRect=..., subPixelAccumulation=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0x7fff2eeac150, paintFlags=224) at ../../Source/WebCore/rendering/RenderLayer.cpp:3094 #30 0x00007fba58552fbe in WebCore::RenderLayer::paintList (this=0x29c0068, list=0x2a0a410, rootLayer=0x29c0068, context=0x7fff2eeac4c0, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0x7fff2eeac150, paintFlags=224) at ../../Source/WebCore/rendering/RenderLayer.cpp:3359 #31 0x00007fba58552b4d in WebCore::RenderLayer::paintLayerContents (this=0x29c0068, rootLayer=0x29c0068, context=0x7fff2eeac4c0, parentPaintDirtyRect=..., subPixelAccumulation=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0x7fff2eeac150, paintFlags=224) at ../../Source/WebCore/rendering/RenderLayer.cpp:3295 #32 0x00007fba58551aea in WebCore::RenderLayer::paintLayerContentsAndReflection (this=0x29c0068, rootLayer=0x29c0068, context=0x7fff2eeac4c0, paintDirtyRect=..., subPixelAccumulation=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0x7fff2eeac150, paintFlags=0) at ../../Source/WebCore/rendering/RenderLayer.cpp:3115 #33 0x00007fba5855197a in WebCore::RenderLayer::paintLayer (this=0x29c0068, rootLayer=0x29c0068, context=0x7fff2eeac4c0, paintDirtyRect=..., subPixelAccumulation=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0x7fff2eeac150, paintFlags=0) at ../../Source/WebCore/rendering/RenderLayer.cpp:3094 #34 0x00007fba58550c05 in WebCore::RenderLayer::paint (this=0x29c0068, context=0x7fff2eeac4c0, damageRect=..., paintBehavior=0, paintingRoot=0x0, region=0x0, paintFlags=0) at ../../Source/WebCore/rendering/RenderLayer.cpp:2903 #35 0x00007fba5824ac60 in WebCore::FrameView::paintContents (this=0x2ae7510, p=0x7fff2eeac4c0, rect=...) at ../../Source/WebCore/page/FrameView.cpp:3239 #36 0x00007fba583c89d8 in WebCore::ScrollView::paint (this=0x2ae7510, context=0x7fff2eeac4c0, rect=...) at ../../Source/WebCore/platform/ScrollView.cpp:1079 #37 0x00007fba57877c3d in WebKit::paintWebView (webView=0xbd4030, frame=0xbfc890, dirtyRegion=...) at ../../Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:530 #38 0x00007fba57877ff2 in WebKit::ChromeClient::paint (this=0xb30c60) at ../../Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:573 #39 0x00007fba578807c5 in WebCore::Timer<WebKit::ChromeClient>::fired (this=0xb30cd0) at ../../Source/WebCore/platform/Timer.h:106 #40 0x00007fba583eee89 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0xc0f750) at ../../Source/WebCore/platform/ThreadTimers.cpp:116 #41 0x00007fba583eed83 in WebCore::ThreadTimers::sharedTimerFired () at ../../Source/WebCore/platform/ThreadTimers.cpp:93 #42 0x00007fba58eace72 in WebCore::timeout_cb () at ../../Source/WebCore/platform/gtk/SharedTimerGtk.cpp:49 #43 0x00007fba56657a42 in g_timeout_dispatch () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #44 0x00007fba56655c91 in g_main_dispatch () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #45 0x00007fba56656956 in g_main_context_dispatch () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #46 0x00007fba56656b39 in g_main_context_iterate () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #47 0x00007fba56656f69 in g_main_loop_run () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libglib-2.0.so.0 #48 0x00007fba56f45e22 in gtk_main () from /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Dependencies/Root/lib64/libgtk-3.so.0 #49 0x000000000047c900 in runTest (inputLine=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:756 #50 0x000000000047bfd4 in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:543 #51 0x000000000047f040 in main (argc=2, argv=0x7fff2eead698) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1455
Attachments
mitz
Comment 1 2012-10-16 07:39:56 PDT
I will need to understand why this platform’s drawComplexText in FontPango.cpp calls back into drawSimpleText.
mitz
Comment 2 2012-10-16 09:46:18 PDT
(In reply to comment #1) > I will need to understand why this platform’s drawComplexText in FontPango.cpp calls back into drawSimpleText. The code in question (as well as the test that triggers the assertion failure) comes from <http://trac.webkit.org/r69117> (by the way, it seems strange that it only tests the primary font—couldn’t the same issue occur with any font?).
Zan Dobersek
Comment 3 2013-01-08 09:35:30 PST
The Pango backend was removed, replaced by the Harbuzz one. After that this crash does not occur anymore. Let's call it fixed.
Note You need to log in before you can comment on or make changes to this bug.