<?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>88561</bug_id>
          
          <creation_ts>2012-06-07 11:32:44 -0700</creation_ts>
          <short_desc>&quot;webkit-patch rebaseline-expectations&quot; added bogus TEXT changes when rebaselining IMAGE failures</short_desc>
          <delta_ts>2012-06-11 07:11:12 -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>DUPLICATE</resolution>
          <dup_id>88581</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>epoger</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>643730</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-07 11:32:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/119737 broke the build:
This patch broke a bunch of mac bots (Requested by epoger on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643742</commentid>
    <comment_count>1</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 11:41:09 -0700</bug_when>
    <thetext>Here are the failures from http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.6/builds/17559/steps/webkit_tests/logs/stdio :

Regressions: Unexpected text diff mismatch : (18)
  css1/basic/containment.html = TEXT
  css1/basic/id_as_selector.html = TEXT
  css1/box_properties/border_bottom.html = TEXT
  css1/box_properties/border_left.html = TEXT
  css1/box_properties/border_right_inline.html = TEXT
  css1/box_properties/border_top.html = TEXT
  css1/box_properties/clear_float.html = TEXT
  css1/box_properties/margin_left.html = TEXT
  css1/box_properties/margin_right.html = TEXT
  css1/box_properties/padding_left.html = TEXT
  css1/box_properties/padding_right.html = TEXT
  css1/cascade/cascade_order.html = TEXT
  css1/classification/list_style_type.html = TEXT
  css1/pseudo/anchor.html = TEXT
  css2.1/20110323/replaced-intrinsic-ratio-001.htm = TEXT
  editing/deleting/delete-after-span-ws-001.html = TEXT
  editing/deleting/delete-after-span-ws-002.html = TEXT
  editing/deleting/delete-after-span-ws-003.html = TEXT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643746</commentid>
    <comment_count>2</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 11:44:40 -0700</bug_when>
    <thetext>I don&apos;t know how my change caused those failures.  I created my CL using &quot;webkit-patch rebaseline-expectations&quot;, as documented in http://code.google.com/p/skia/wiki/LandAndRebaselineLayoutTests

Why would webkit-patch rebaseline-expectations create text files that fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643794</commentid>
    <comment_count>3</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 12:28:24 -0700</bug_when>
    <thetext>Committed r119746: &lt;http://trac.webkit.org/changeset/119746&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643804</commentid>
    <comment_count>4</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 12:41:43 -0700</bug_when>
    <thetext>I created http://trac.webkit.org/changeset/119746 , shown above, using:
Tools/Scripts/webkit-patch rollout 119737 &quot;see https://bugs.webkit.org/show_bug.cgi?id=88561&quot;

So that will hopefully revert http://trac.webkit.org/changeset/119737 and fix the broken waterfall bots.  (I&apos;ll check on them in a bit)

But the bug is still open... why did &quot;webkit-patch rebaseline-expectations&quot; create incorrect results?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643809</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 12:46:44 -0700</bug_when>
    <thetext>what did it do?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643812</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 12:50:39 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I created http://trac.webkit.org/changeset/119746 , shown above, using:
&gt; Tools/Scripts/webkit-patch rollout 119737 &quot;see https://bugs.webkit.org/show_bug.cgi?id=88561&quot;
&gt; 
&gt; So that will hopefully revert http://trac.webkit.org/changeset/119737 and fix the broken waterfall bots.  (I&apos;ll check on them in a bit)
&gt; 
&gt; But the bug is still open... why did &quot;webkit-patch rebaseline-expectations&quot; create incorrect results?

Did you happen to use Mac port&apos;s build to run this command? (as supposed to Chromium Mac build).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643814</commentid>
    <comment_count>7</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 12:53:22 -0700</bug_when>
    <thetext>The bot is green again as of the rollout... http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.6/builds/17564</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643818</commentid>
    <comment_count>8</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 13:01:48 -0700</bug_when>
    <thetext>Let&apos;s focus on one of the tests that failed:
  css1/basic/containment.html = TEXT

How I rebaselined:
1. I updated a clean webkit tree.
2. I marked 100 lines in that tree&apos;s skia_test_expectations file with REBASELINE, including the css1/basic/containment line (line 73 of http://src.chromium.org/viewvc/chrome/trunk/src/skia/skia_test_expectations.txt?annotate=140775 )
3. I ran &quot;Tools/Scripts/webkit-patch rebaseline-expectations&quot;, and committed its results as http://trac.webkit.org/changeset/119737

If you look at http://trac.webkit.org/changeset/119737 , you&apos;ll see that several css1/basic/containment text files were modified.  I was surprised by that, since the change I was rebaselining for should only affect minute pixel values, not actual layout results… but I figured the tool was just optimizing across platforms or something like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643820</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 13:05:03 -0700</bug_when>
    <thetext>Since you didn&apos;t answer my question, I&apos;ll tell you that if you use rebaseline-expectations with non-Chromium port build, then it&apos;ll mess up expected results because ImageDiff in non-Chromium ports have non-zero tolerance level even if you specified the tolerance to be 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643823</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 13:07:38 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Since you didn&apos;t answer my question, I&apos;ll tell you that if you use rebaseline-expectations with non-Chromium port build, then it&apos;ll mess up expected results because ImageDiff in non-Chromium ports have non-zero tolerance level even if you specified the tolerance to be 0.

The code is hard-wired to skip non-chromium ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643827</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 13:08:33 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; The code is hard-wired to skip non-chromium ports.

It is strange that it modified non-chromium port expected results then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643833</commentid>
    <comment_count>12</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 13:14:01 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Since you didn&apos;t answer my question, I&apos;ll tell you that if you use rebaseline-expectations with non-Chromium port build, then it&apos;ll mess up expected results because ImageDiff in non-Chromium ports have non-zero tolerance level even if you specified the tolerance to be 0.

I don&apos;t understand your question.  This is *exactly* what I ran on the command line:

Tools/Scripts/webkit-patch rebaseline-expectations

What does it mean to &quot;use Mac port&apos;s build to run this command&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643834</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 13:15:33 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; What does it mean to &quot;use Mac port&apos;s build to run this command&quot;?

build-webkit instead of build-webkit --chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643835</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 13:17:22 -0700</bug_when>
    <thetext>I&apos;m still trying to understand what happened. 

1) it looks like rebaseline-expectations incorrectly ignores the failure type in the file and will always attempt to rebaseline all of the types of expected results.

2) that said, if the chromium bots were failing with IMAGE results, I wouldn&apos;t have thought there would be .txt files to pull (have to double check this)

3) it looks like maybe optimize-baselines ran across all of the ports but skipped the mac (and maybe qt?) port somehow, and concluded that all of the other ports were matching on the text files, so they deleted the efl and gtk baselines (and the chromium baselines) and promoted them up to generic, thus causing mac to break. I don&apos;t yet know why any of this would&apos;ve happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643838</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 13:21:00 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Since you didn&apos;t answer my question, I&apos;ll tell you that if you use rebaseline-expectations with non-Chromium port build, then it&apos;ll mess up expected results because ImageDiff in non-Chromium ports have non-zero tolerance level even if you specified the tolerance to be 0.

Also, we don&apos;t run ImageDiff as part of rebaselining. The files are de-dup&apos;ed based on their hashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643839</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 13:21:53 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #9)
&gt; &gt; Since you didn&apos;t answer my question, I&apos;ll tell you that if you use rebaseline-expectations with non-Chromium port build, then it&apos;ll mess up expected results because ImageDiff in non-Chromium ports have non-zero tolerance level even if you specified the tolerance to be 0.
&gt; 
&gt; Also, we don&apos;t run ImageDiff as part of rebaselining. The files are de-dup&apos;ed based on their hashes.

I think optimize-rebaseline does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643849</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 13:34:04 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; Also, we don&apos;t run ImageDiff as part of rebaselining. The files are de-dup&apos;ed based on their hashes.
&gt; 
&gt; I think optimize-rebaseline does.

No, it doesn&apos;t. The only de-duping we do is during optimize-rebaseline, and that is what I was referring to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643850</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 13:36:18 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; &gt; Also, we don&apos;t run ImageDiff as part of rebaselining. The files are de-dup&apos;ed based on their hashes.
&gt; &gt; 
&gt; &gt; I think optimize-rebaseline does.
&gt; 
&gt; No, it doesn&apos;t. The only de-duping we do is during optimize-rebaseline, and that is what I was referring to.

That is odd. I encountered the exactly same problem when I was using rebaseline-expectations several months ago. Maybe things have changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643909</commentid>
    <comment_count>19</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-06-07 14:25:21 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; 1) it looks like rebaseline-expectations incorrectly ignores the failure type in the file and will always attempt to rebaseline all of the types of expected results.

This is def incorrect behavior, but I agree that this is what it&apos;s doing. :)

&gt; 2) that said, if the chromium bots were failing with IMAGE results, I wouldn&apos;t have thought there would be .txt files to pull (have to double check this)

The chromium bots keep the aggregate amount of failures. So if this test ever failed text on that bot, it&apos;ll pull that result. So, it definitely can do the wrong thing here.

We should fix (1) and try the rebaseline steps again and see if that fixes it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643928</commentid>
    <comment_count>20</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 14:36:51 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; &gt; 2) that said, if the chromium bots were failing with IMAGE results, I wouldn&apos;t have thought there would be .txt files to pull (have to double check this)
&gt; 
&gt; The chromium bots keep the aggregate amount of failures. So if this test ever failed text on that bot, it&apos;ll pull that result. So, it definitely can do the wrong thing here.
&gt; 
&gt; We should fix (1) and try the rebaseline steps again and see if that fixes it.

Ick, you&apos;re right, I forgot about that. It should be easy to fix (1) ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643929</commentid>
    <comment_count>21</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 14:37:20 -0700</bug_when>
    <thetext>still have no explanation for the optimize part, and that&apos;s in many ways more disturbing, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643933</commentid>
    <comment_count>22</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-06-07 14:42:16 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; still have no explanation for the optimize part, and that&apos;s in many ways more disturbing, though.

Should be easy to reproduce:
1. Run webkit-patch rebaseline-test for each canary bot.
2. Look at the state of the world here to get a look for what the optimized baselines should look like.
3. Run webkit-patch optimize-baselines and see it gives you the right result.

Without knowing the state in step 2, it&apos;s hard to say if there&apos;s a bug.

I think this might just be miscommunication though. Did this cause failures on the Apple mac port as well? I think it only caused failures on the Chromium mac port, which would makes sense given the other known bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643935</commentid>
    <comment_count>23</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 14:44:05 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; still have no explanation for the optimize part, and that&apos;s in many ways more disturbing, though.
&gt; 
&gt; Should be easy to reproduce:
&gt; 1. Run webkit-patch rebaseline-test for each canary bot.
&gt; 2. Look at the state of the world here to get a look for what the optimized baselines should look like.
&gt; 3. Run webkit-patch optimize-baselines and see it gives you the right result.
&gt; 
&gt; Without knowing the state in step 2, it&apos;s hard to say if there&apos;s a bug.
&gt; 
&gt; I think this might just be miscommunication though. Did this cause failures on the Apple mac port as well? I think it only caused failures on the Chromium mac port, which would makes sense given the other known bug.

If you look at the files affected in the CL, we&apos;re modifying baselines in the generic directory and in the gtk and efl directories, none of which I would expect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643958</commentid>
    <comment_count>24</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-07 15:07:05 -0700</bug_when>
    <thetext>Until we figure out all this stuff, I&apos;m going to roll out my original change ( https://src.chromium.org/viewvc/chrome?view=rev&amp;revision=140760 ) in as orderly a fashion as possible... the longer we leave 1800 test suppressions in place, the more new failures will be obscured.

Updates on this &quot;retreat&quot; will be in http://crbug.com/131189 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643966</commentid>
    <comment_count>25</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 15:11:32 -0700</bug_when>
    <thetext>I am working on making rebaseline-expectations only pull the right suffixes in bug 88581.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643985</commentid>
    <comment_count>26</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-06-07 15:29:11 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; If you look at the files affected in the CL, we&apos;re modifying baselines in the generic directory and in the gtk and efl directories, none of which I would expect.

No, that is expected behavior. optimize-baselines optimizes globally. There&apos;s no reason for it to restrict optimizations to one port. Nearly everytime I&apos;ve done rebaselines it has correctly modified the gtk/efl directories to remove unneeded duplicates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643996</commentid>
    <comment_count>27</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-06-07 15:33:24 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #23)
&gt; &gt; If you look at the files affected in the CL, we&apos;re modifying baselines in the generic directory and in the gtk and efl directories, none of which I would expect.
&gt; 
&gt; No, that is expected behavior. optimize-baselines optimizes globally. There&apos;s no reason for it to restrict optimizations to one port. Nearly everytime I&apos;ve done rebaselines it has correctly modified the gtk/efl directories to remove unneeded duplicates.

Okay, I was still surprised by the generic dir mods, but I&apos;m happy to have epoger try again after the other fix lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645184</commentid>
    <comment_count>28</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 18:36:39 -0700</bug_when>
    <thetext>Is this bug still open? Or should we just close it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645984</commentid>
    <comment_count>29</comment_count>
    <who name="Elliot Poger">epoger</who>
    <bug_when>2012-06-11 07:11:12 -0700</bug_when>
    <thetext>[old title: &apos;REGRESSION(r119737): This patch broke a bunch of mac bots (Requested by epoger on #webkit).&apos;]

Renaming to reflect the core problem we encountered here, which has supposedly been fixed in https://bugs.webkit.org/show_bug.cgi?id=88581 .

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

    </bug>

</bugzilla>