<?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>157338</bug_id>
          
          <creation_ts>2016-05-04 00:12:00 -0700</creation_ts>
          <short_desc>REGRESSION(r200383): All layout and API tests crash in GTK+ debug bot after r200383</short_desc>
          <delta_ts>2016-05-04 13:02:49 -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>JavaScriptCore</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>157045</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=157340</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, LayoutTestFailure, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>157045</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>ossy</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1189991</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-05-04 00:12:00 -0700</bug_when>
    <thetext>I haven&apos;t tested it myself yet, but looking at the blame list in the bot, r200383 looks like the only change that can break the world this way. There aren&apos;t ASSERTIONS in the crash logs, so my guess is that this has to do with system malloc, because tests work in the release bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190015</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-05-04 02:52:00 -0700</bug_when>
    <thetext>Tried a release build with system malloc, and tests didn&apos;t crash, so next one to blame was the compiler. Tried a debug build with clang and tests didn&apos;t crash either, so it seems to be another GCC problem...

$ g++ --version
g++ (Debian 4.9.2-10) 4.9.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190033</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-05-04 04:48:44 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; $ g++ --version
&gt; g++ (Debian 4.9.2-10) 4.9.2

4.9 is the same version that the bots run.

I wonder if this is also reproducible with GCC 5 or GCC 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190036</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2016-05-04 04:53:22 -0700</bug_when>
    <thetext>Ii looks like r200383 also broke the Windows debug bot:

https://build.webkit.org/builders/Apple%20Win%207%20Debug%20%28Tests%29/builds/69541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190061</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-05-04 06:19:37 -0700</bug_when>
    <thetext>The callFunc functions that are instantiated must be aligned to the minimum supported value so that the two tags can be encoded into the bottom two bits of the pointer value.

This isn&apos;t the case in builds with GCC that don&apos;t at least use  -O2 -- -falign-functions is disabled then, and callFunc address can have the second-lowest bit always set. Lazy initialization in callFunc&lt;&gt;() then fails because the pointer value always seems to encode the initialization tag, returning early and not initializing anything.

The simplest way to deal with this would be to slap a aligned() attribute onto the static function declaration.

Only tested on x86-64. ARM Thumb2 probably suffers from the same issue, but AFAIU this is occurring even in release builds where -falign-functions should be enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190175</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-04 13:02:49 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 157045 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>