<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>132179</bug_id>
          
          <creation_ts>2014-04-25 02:45:27 -0700</creation_ts>
          <short_desc>[harfbuzz] ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) in WTF::HashTable&lt;&gt;::checkKey</short_desc>
          <delta_ts>2016-08-03 14:21:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>116980</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Renata Hodovan">rhodovan.u-szeged</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>mathias</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1004026</commentid>
    <comment_count>0</comment_count>
      <attachid>230157</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2014-04-25 02:45:27 -0700</bug_when>
    <thetext>Created attachment 230157
Test case

The following test with two HTML codes is firing the assertion:

&lt;body&gt;&amp;#6198&amp;#656&lt;/body&gt;


The backtrace:


Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff96cc3700 (LWP 10677)]
0x00007ffff250ce83 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:333
333	    *(int *)(uintptr_t)0xbbadbeef = 0;
(gdb) bt
#0  0x00007ffff250ce83 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:333
#1  0x00007ffff373bf80 in WTF::HashTable&lt;unsigned int, WTF::KeyValuePair&lt;unsigned int, unsigned short&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned int, unsigned short&gt; &gt;, WTF::IntHash&lt;unsigned int&gt;, WTF::HashMap&lt;unsigned int, unsigned short, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned short&gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned int&gt; &gt;::checkKey&lt;WTF::HashMapTranslator&lt;WTF::HashMap&lt;unsigned int, unsigned short, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned short&gt; &gt;::KeyValuePairTraits, WTF::IntHash&lt;unsigned int&gt; &gt;, unsigned int&gt; (this=0x7fbef0, key=@0x7fffffffa39c: 0)
    at ../../Source/WTF/wtf/HashTable.h:571
#2  0x00007ffff373bca6 in WTF::HashTable&lt;unsigned int, WTF::KeyValuePair&lt;unsigned int, unsigned short&gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;unsigned int, unsigned short&gt; &gt;, WTF::IntHash&lt;unsigned int&gt;, WTF::HashMap&lt;unsigned int, unsigned short, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned short&gt; &gt;::KeyValuePairTraits, WTF::HashTraits&lt;unsigned int&gt; &gt;::add&lt;WTF::HashMapTranslator&lt;WTF::HashMap&lt;unsigned int, unsigned short, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned short&gt; &gt;::KeyValuePairTraits, WTF::IntHash&lt;unsigned int&gt; &gt;, unsigned int const&amp;, int&gt;(unsigned int const&amp;, int&amp;&amp;) (this=0x7fbef0, 
    key=@0x7fffffffa39c: 0, extra=@0x7fffffffa3c8: 0) at ../../Source/WTF/wtf/HashTable.h:788
#3  0x00007ffff373b928 in WTF::HashMap&lt;unsigned int, unsigned short, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned short&gt; &gt;::inlineAdd&lt;unsigned int const&amp;, int&gt;(unsigned int const&amp;, int&amp;&amp;) (this=0x7fbef0, key=@0x7fffffffa39c: 0, 
    value=@0x7fffffffa3c8: 0) at ../../Source/WTF/wtf/HashMap.h:281
#4  0x00007ffff373b85b in WTF::HashMap&lt;unsigned int, unsigned short, WTF::IntHash&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned int&gt;, WTF::HashTraits&lt;unsigned short&gt; &gt;::add&lt;int&gt;(unsigned int const&amp;, int&amp;&amp;) (this=0x7fbef0, key=@0x7fffffffa39c: 0, mapped=@0x7fffffffa3c8: 0)
    at ../../Source/WTF/wtf/HashMap.h:309
#5  0x00007ffff373b0e3 in WebCore::harfBuzzGetGlyph (fontData=0x897ca0, unicode=0, glyph=0x7fffffffa48c)
    at ../../Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:112
#6  0x00007fffe8e04abd in get_glyph (glyph=0x7fffffffa48c, variation_selector=0, unicode=&lt;optimized out&gt;, this=&lt;optimized out&gt;)
    at hb-font-private.hh:219
#7  decompose_current_character (shortest=true, c=0x7fffffffa4b0) at hb-ot-shape-normalize.cc:202
#8  decompose_cluster (end=3, short_circuit=true, c=0x7fffffffa4b0) at hb-ot-shape-normalize.cc:254
#9  _hb_ot_shape_normalize (plan=plan@entry=0x7fc970, buffer=buffer@entry=0x897b20, font=font@entry=0x7fbf50)
    at hb-ot-shape-normalize.cc:309
#10 0x00007fffe8df54f6 in hb_ot_substitute_default (c=&lt;synthetic pointer&gt;) at hb-ot-shape.cc:366
#11 hb_ot_substitute (c=&lt;synthetic pointer&gt;) at hb-ot-shape.cc:397
#12 hb_ot_shape_internal (c=&lt;synthetic pointer&gt;) at hb-ot-shape.cc:563
#13 _hb_ot_shape (shape_plan=&lt;optimized out&gt;, font=&lt;optimized out&gt;, buffer=0x897b20, features=0x0, num_features=0) at hb-ot-shape.cc:585
#14 0x00007fffe8dd9b7a in hb_shape_plan_execute (shape_plan=0x7fc1c0, font=0x7fbf50, buffer=0x897b20, features=0x0, num_features=0)
    at hb-shaper-list.hh:39
#15 0x00007fffe8dd8f29 in hb_shape_full (font=0x7fbf50, buffer=0x897b20, features=0x0, num_features=0, shaper_list=&lt;optimized out&gt;)
    at hb-shape.cc:260
#16 0x00007ffff373ebea in WebCore::HarfBuzzShaper::shapeHarfBuzzRuns (this=0x7fffffffa890, shouldSetDirection=false)
    at ../../Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp:513
#17 0x00007ffff373dfc7 in WebCore::HarfBuzzShaper::shape (this=0x7fffffffa890, glyphBuffer=0x0)
    at ../../Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp:390
#18 0x00007ffff3706a70 in WebCore::Font::floatWidthForComplexText (this=0x8794b8, run=...)
    at ../../Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:72
#19 0x00007ffff30ae50a in WebCore::Font::width (this=0x8794b8, run=..., fallbackFonts=0x7fffffffb528, glyphOverflow=0x7fffffffade0)
    at ../../Source/WebCore/platform/graphics/Font.cpp:396
#20 0x00007ffff33e917d in WebCore::RenderText::widthFromCache (this=0x7c7fb0, f=..., start=0, len=3, xPos=0, fallbackFonts=0x7fffffffb528, 
    glyphOverflow=0x7fffffffade0, style=...) at ../../Source/WebCore/rendering/RenderText.cpp:498
#21 0x00007ffff33e56d9 in WebCore::RenderText::computePreferredLogicalWidths (this=0x7c7fb0, leadWidth=0, fallbackFonts=..., 
    glyphOverflow=...) at ../../Source/WebCore/rendering/RenderText.cpp:793
#22 0x00007ffff33e71bf in WebCore::RenderText::width (this=0x7c7fb0, from=0, len=3, f=..., xPos=0, fallbackFonts=0x7fffffffb528, 
    glyphOverflow=0x7fffffffade0) at ../../Source/WebCore/rendering/RenderText.cpp:1201
#23 0x00007ffff342b07d in WebCore::textWidth (text=0x7c7fb0, from=0, len=3, font=..., xPos=0, isFixedPitch=false, collapseWhiteSpace=true, 
    fallbackFonts=..., layout=0x0) at ../../Source/WebCore/rendering/line/BreakingContextInlineHeaders.h:492
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
#24 0x00007ffff342dda4 in WebCore::BreakingContext::handleText (this=0x7fffffffb0f0, wordMeasurements=..., 
    hyphenated=@0x7fffffffb408: false, consecutiveHyphenatedLines=@0x7fffffffb250: 0)
    at ../../Source/WebCore/rendering/line/BreakingContextInlineHeaders.h:888
#25 0x00007ffff3428869 in WebCore::LineBreaker::nextSegmentBreak (this=0x7fffffffb400, resolver=..., lineInfo=..., renderTextInfo=..., 
    lastFloatFromPreviousLine=0x0, consecutiveHyphenatedLines=0, wordMeasurements=...)
    at ../../Source/WebCore/rendering/line/LineBreaker.cpp:115
#26 0x00007ffff3428507 in WebCore::LineBreaker::nextLineBreak (this=0x7fffffffb400, resolver=..., lineInfo=..., renderTextInfo=..., 
    lastFloatFromPreviousLine=0x0, consecutiveHyphenatedLines=0, wordMeasurements=...)
    at ../../Source/WebCore/rendering/line/LineBreaker.cpp:82
#27 0x00007ffff326e36a in WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange (this=0x7c5ce0, layoutState=..., resolver=..., 
    cleanLineStart=..., cleanLineBidiStatus=..., consecutiveHyphenatedLines=0)
    at ../../Source/WebCore/rendering/RenderBlockLineLayout.cpp:1092
#28 0x00007ffff326df46 in WebCore::RenderBlockFlow::layoutRunsAndFloats (this=0x7c5ce0, layoutState=..., hasInlineChild=true)
    at ../../Source/WebCore/rendering/RenderBlockLineLayout.cpp:1036
#29 0x00007ffff32705ce in WebCore::RenderBlockFlow::layoutLineBoxes (this=0x7c5ce0, relayoutChildren=true, repaintLogicalTop=..., 
    repaintLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockLineLayout.cpp:1441
#30 0x00007ffff3253c94 in WebCore::RenderBlockFlow::layoutInlineChildren (this=0x7c5ce0, relayoutChildren=true, repaintLogicalTop=..., 
    repaintLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:563
#31 0x00007ffff3252fb0 in WebCore::RenderBlockFlow::layoutBlock (this=0x7c5ce0, relayoutChildren=true, pageLogicalHeight=...)
    at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:391
#32 0x00007ffff3222c71 in WebCore::RenderBlock::layout (this=0x7c5ce0) at ../../Source/WebCore/rendering/RenderBlock.cpp:1274
#33 0x00007ffff3254080 in WebCore::RenderBlockFlow::layoutBlockChild (this=0x7c5620, child=..., marginInfo=..., 
    previousFloatLogicalBottom=..., maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:624
#34 0x00007ffff3253b99 in WebCore::RenderBlockFlow::layoutBlockChildren (this=0x7c5620, relayoutChildren=true, maxFloatLogicalBottom=...)
    at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:543
#35 0x00007ffff3252fd4 in WebCore::RenderBlockFlow::layoutBlock (this=0x7c5620, relayoutChildren=true, pageLogicalHeight=...)
    at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:393
#36 0x00007ffff3222c71 in WebCore::RenderBlock::layout (this=0x7c5620) at ../../Source/WebCore/rendering/RenderBlock.cpp:1274
#37 0x00007ffff3254080 in WebCore::RenderBlockFlow::layoutBlockChild (this=0x89ff50, child=..., marginInfo=..., 
    previousFloatLogicalBottom=..., maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:624
#38 0x00007ffff3253b99 in WebCore::RenderBlockFlow::layoutBlockChildren (this=0x89ff50, relayoutChildren=true, maxFloatLogicalBottom=...)
    at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:543
#39 0x00007ffff3252fd4 in WebCore::RenderBlockFlow::layoutBlock (this=0x89ff50, relayoutChildren=true, pageLogicalHeight=...)
    at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:393
#40 0x00007ffff3222c71 in WebCore::RenderBlock::layout (this=0x89ff50) at ../../Source/WebCore/rendering/RenderBlock.cpp:1274
#41 0x00007ffff3400afb in WebCore::RenderView::layoutContent (this=0x89ff50, state=...) at ../../Source/WebCore/rendering/RenderView.cpp:152
#42 0x00007ffff3401279 in WebCore::RenderView::layout (this=0x89ff50) at ../../Source/WebCore/rendering/RenderView.cpp:281
#43 0x00007ffff2faa959 in WebCore::FrameView::layout (this=0x7c7570, allowSubtree=true) at ../../Source/WebCore/page/FrameView.cpp:1270
#44 0x00007ffff2a1ebba in WebCore::Document::implicitClose (this=0x8f8870) at ../../Source/WebCore/dom/Document.cpp:2454
#45 0x00007ffff2e8216f in WebCore::FrameLoader::checkCallImplicitClose (this=0x94b3b8) at ../../Source/WebCore/loader/FrameLoader.cpp:889
#46 0x00007ffff2e81f10 in WebCore::FrameLoader::checkCompleted (this=0x94b3b8) at ../../Source/WebCore/loader/FrameLoader.cpp:835
#47 0x00007ffff2e81c75 in WebCore::FrameLoader::finishedParsing (this=0x94b3b8) at ../../Source/WebCore/loader/FrameLoader.cpp:759
#48 0x00007ffff2a2653f in WebCore::Document::finishedParsing (this=0x8f8870) at ../../Source/WebCore/dom/Document.cpp:4482
#49 0x00007ffff2d1a0eb in WebCore::HTMLConstructionSite::finishedParsing (this=0x740cb8)
    at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:393
#50 0x00007ffff2d52fc2 in WebCore::HTMLTreeBuilder::finished (this=0x740ca0) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2988
#51 0x00007ffff2d21bb0 in WebCore::HTMLDocumentParser::end (this=0x6d2130) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:439
#52 0x00007ffff2d21c99 in WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd (this=0x6d2130)
    at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:450
#53 0x00007ffff2d208e1 in WebCore::HTMLDocumentParser::prepareToStopParsing (this=0x6d2130)
    at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:165
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
#54 0x00007ffff2d21cde in WebCore::HTMLDocumentParser::attemptToEnd (this=0x6d2130)
    at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:462
#55 0x00007ffff2d21d97 in WebCore::HTMLDocumentParser::finish (this=0x6d2130) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:490
#56 0x00007ffff2e74c69 in WebCore::DocumentWriter::end (this=0x6d5970) at ../../Source/WebCore/loader/DocumentWriter.cpp:248
#57 0x00007ffff2e61f3b in WebCore::DocumentLoader::finishedLoading (this=0x6d58d0, finishTime=0)
    at ../../Source/WebCore/loader/DocumentLoader.cpp:440
#58 0x00007ffff2e61ca4 in WebCore::DocumentLoader::notifyFinished (this=0x6d58d0, resource=0x6cf470)
    at ../../Source/WebCore/loader/DocumentLoader.cpp:374
#59 0x00007ffff2f034b8 in WebCore::CachedResource::checkNotify (this=0x6cf470) at ../../Source/WebCore/loader/cache/CachedResource.cpp:332
#60 0x00007ffff2f03596 in WebCore::CachedResource::finishLoading (this=0x6cf470) at ../../Source/WebCore/loader/cache/CachedResource.cpp:348
#61 0x00007ffff2f002ba in WebCore::CachedRawResource::finishLoading (this=0x6cf470, data=0x781090)
    at ../../Source/WebCore/loader/cache/CachedRawResource.cpp:97
#62 0x00007ffff2ebc0ef in WebCore::SubresourceLoader::didFinishLoading (this=0x6cf9b0, finishTime=0)
    at ../../Source/WebCore/loader/SubresourceLoader.cpp:310
#63 0x00007ffff2eb85cd in WebCore::ResourceLoader::didFinishLoading (this=0x6cf9b0, finishTime=0)
    at ../../Source/WebCore/loader/ResourceLoader.cpp:508
#64 0x00007ffff3767e60 in WebCore::readCallback (asyncResult=0x72a9d0, data=0x6cf040)
    at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1326
#65 0x00007fffeb97b119 in async_ready_callback_wrapper (source_object=0x8a3b90, res=0x72a9d0, user_data=0x6cf040) at ginputstream.c:519
#66 0x00007fffeb99d67b in g_task_return_now (task=0x72a9d0) at gtask.c:1108
#67 0x00007fffeb99d699 in complete_in_idle_cb (task=0x72a9d0) at gtask.c:1117
#68 0x00007fffeac0c2d5 in g_main_dispatch (context=0x638660) at gmain.c:3065
#69 g_main_context_dispatch (context=context@entry=0x638660) at gmain.c:3641
#70 0x00007fffeac0c618 in g_main_context_iterate (context=0x638660, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at gmain.c:3712
#71 0x00007fffeac0ca7a in g_main_loop_run (loop=0x684f30) at gmain.c:3906
#72 0x00007ffff255d54a in WTF::RunLoop::run () at ../../Source/WTF/wtf/gtk/RunLoopGtk.cpp:59
#73 0x00007ffff249e005 in WebKit::WebProcessMainGtk (argc=2, argv=0x7fffffffde38)
    at ../../Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp:75
#74 0x000000000040085c in main (argc=2, argv=0x7fffffffde38) at ../../Source/WebKit2/gtk/MainGtk.cpp:31</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1140758</commentid>
    <comment_count>1</comment_count>
      <attachid>265174</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2015-11-10 06:47:09 -0800</bug_when>
    <thetext>Created attachment 265174
Test

The old test case doesn&apos;t fail anymore. However the new one still does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1217190</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-08-03 14:21:28 -0700</bug_when>
    <thetext>This issue no longer occurs under GuardMalloc or ASAN as of r204037. If you believe there is still a bug, please reopen this issue with a revised test case.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>230157</attachid>
            <date>2014-04-25 02:45:27 -0700</date>
            <delta_ts>2015-11-10 06:47:09 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>crash.html</filename>
            <type>text/html</type>
            <size>24</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">PGJvZHk+JiM2MTk4JiM2NTY8L2JvZHk+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>265174</attachid>
            <date>2015-11-10 06:47:09 -0800</date>
            <delta_ts>2015-11-10 06:47:09 -0800</delta_ts>
            <desc>Test</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>16</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">JiM1ODk5NTY7JiNYRkNFOw==
</data>

          </attachment>
      

    </bug>

</bugzilla>