Bug 165734

Summary: Flaky Test: http/tests/misc/acid3.html
Product: WebKit Reporter: WebKit Commit Bot <commit-queue>
Component: Tools / TestsAssignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: abecsi, ap, arv, cdumez, lforschler, mitz, mmaxfield, rniwa, ryanhaddad, simon.fraser, tonyg, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 50856    
Attachments:
Description Flags
Archive of layout-test-results from webkit-cq-03
none
Archive of layout-test-results from webkit-cq-01
none
Archive of layout-test-results from webkit-cq-02
none
Archive of layout-test-results from webkit-cq-03
none
Archive of layout-test-results from webkit-cq-03
none
Archive of layout-test-results from webkit-cq-01
none
Archive of layout-test-results from webkit-cq-01
none
Archive of layout-test-results from webkit-cq-02
none
Archive of layout-test-results from webkit-cq-01
none
Archive of layout-test-results from webkit-cq-02
none
Archive of layout-test-results from webkit-cq-03
none
Archive of layout-test-results from webkit-cq-03
none
Patch none

Description WebKit Commit Bot 2016-12-10 13:46:59 PST
This is an automatically generated bug from the commit-queue.
http/tests/misc/acid3.html has been flaky on the commit-queue.

http/tests/misc/acid3.html was authored by abecsi@webkit.org, arv@chromium.org, mitz@webkit.org, rniwa@webkit.org, and tonyg@chromium.org.
http://trac.webkit.org/browser/trunk/LayoutTests/http/tests/misc/acid3.html

The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 296817 [details] on bug 165731.
Bot: webkit-cq-03  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.10.5

The bots will update this with information from each new failure.

If you believe this bug to be fixed or invalid, feel free to close.  The bots will re-open if the flake re-occurs.

If you would like to track this test fix with another bug, please close this bug as a duplicate.  The bots will follow the duplicate chain when making future comments.
Comment 1 WebKit Commit Bot 2016-12-10 13:47:04 PST
Created attachment 296821 [details]
Archive of layout-test-results from webkit-cq-03
Comment 2 Alexey Proskuryakov 2016-12-12 11:59:56 PST
Ugh, looks like kerning is getting disabled?
Comment 3 Alexey Proskuryakov 2016-12-12 12:05:31 PST
It's actually weird - the image diff only has text width issues, but the dump is completely different:

@@ -1,4 +1,8 @@
 CONSOLE MESSAGE: Did not parse stylesheet at 'http://127.0.0.1:8000/misc/resources/acid3/empty.css' because non CSS MIME types are not allowed in strict mode.
+ALERT: Test 26 passed, but took 50ms (less than 30fps)
+Test 69 failed: timeout -- could be a networking issue
+Test 74 failed: The operation is not supported.
+Total elapsed time: 7.47s
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
 layer at (20,20) size 644x433
@@ -12,13 +16,13 @@
         RenderBlock {P} at (70,64) size 64x50 [bgcolor=#FFA500] [border: (1px solid #000000)]
         RenderBlock {P} at (144,48) size 75x58 [bgcolor=#FFFF00] [border: (1px solid #000000)]
         RenderBlock {P} at (230,32) size 87x66 [bgcolor=#00FF00] [border: (1px solid #000000)]
-        RenderBlock {P} at (329,16) size 97x74 [bgcolor=#0000FF] [border: (1px solid #000000)]
+        RenderBlock {P} at (329,16) size 97x74 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
         RenderBlock {P} at (440,0) size 107x82 [bgcolor=#800080] [border: (1px solid #000000)]
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {P} at (41,214) size 568x120
-        RenderInline {SPAN} at (0,0) size 168x112
-          RenderText {#text} at (206,4) size 168x112
-            text run at (206,4) width 168: "100"
+        RenderInline {SPAN} at (0,0) size 112x112
+          RenderText {#text} at (262,4) size 112x112
+            text run at (262,4) width 112: "98"
         RenderInline {SPAN} at (0,0) size 29x112
           RenderText {#text} at (373,4) size 29x112
             text run at (373,4) width 29: "/"
Comment 4 WebKit Commit Bot 2017-01-24 20:15:00 PST
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 299665 [details] on bug 167405.
Bot: webkit-cq-01  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 5 WebKit Commit Bot 2017-01-24 20:15:03 PST
Created attachment 299673 [details]
Archive of layout-test-results from webkit-cq-01
Comment 6 WebKit Commit Bot 2017-02-20 17:23:19 PST
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 302201 [details] on bug 168613.
Bot: webkit-cq-02  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 7 WebKit Commit Bot 2017-02-20 17:23:22 PST
Created attachment 302209 [details]
Archive of layout-test-results from webkit-cq-02
Comment 8 WebKit Commit Bot 2017-04-19 13:43:01 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 307499 [details] on bug 171001.
Bot: webkit-cq-03  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 9 WebKit Commit Bot 2017-04-19 13:43:03 PDT
Created attachment 307504 [details]
Archive of layout-test-results from webkit-cq-03
Comment 10 WebKit Commit Bot 2017-04-28 09:53:16 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 308531 [details] on bug 171169.
Bot: webkit-cq-03  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 11 WebKit Commit Bot 2017-04-28 09:53:17 PDT
Created attachment 308544 [details]
Archive of layout-test-results from webkit-cq-03
Comment 12 WebKit Commit Bot 2017-05-06 00:23:04 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 309273 [details] on bug 171407.
Bot: webkit-cq-01  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 13 WebKit Commit Bot 2017-05-06 00:23:05 PDT
Created attachment 309275 [details]
Archive of layout-test-results from webkit-cq-01
Comment 14 WebKit Commit Bot 2017-05-06 01:02:38 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 309273 [details] on bug 171407.
Bot: webkit-cq-01  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 15 WebKit Commit Bot 2017-05-06 01:02:39 PDT
Created attachment 309278 [details]
Archive of layout-test-results from webkit-cq-01
Comment 16 WebKit Commit Bot 2017-05-11 16:32:59 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 309798 [details] on bug 171996.
Bot: webkit-cq-02  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 17 WebKit Commit Bot 2017-05-11 16:33:01 PDT
Created attachment 309818 [details]
Archive of layout-test-results from webkit-cq-02
Comment 18 WebKit Commit Bot 2017-05-12 15:14:23 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 309945 [details] on bug 172030.
Bot: webkit-cq-01  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 19 WebKit Commit Bot 2017-05-12 15:14:24 PDT
Created attachment 309953 [details]
Archive of layout-test-results from webkit-cq-01
Comment 20 Alexey Proskuryakov 2017-05-12 22:29:15 PDT
Recent failure:

@@ -1,6 +1,7 @@
 CONSOLE MESSAGE: Did not parse stylesheet at 'http://127.0.0.1:8000/misc/resources/acid3/empty.css' because non CSS MIME types are not allowed in strict mode.
 ALERT: Test 23 failed: expected '14' but got '5' - wrong exception for createElementNS('null', ':div')
 Test 25 failed: wrong exception
+Test 69 failed: timeout -- could be a networking issue
 
 layer at (0,0) size 800x600
   RenderView at (0,0) size 800x600
@@ -15,13 +16,13 @@
         RenderBlock {P} at (70,64) size 64x50 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
         RenderBlock {P} at (144,48) size 75x58 [bgcolor=#FFFF00] [border: (1px solid #000000)]
         RenderBlock {P} at (230,32) size 87x66 [bgcolor=#00FF00] [border: (1px solid #000000)]
-        RenderBlock {P} at (329,16) size 97x74 [bgcolor=#0000FF] [border: (1px solid #000000)]
+        RenderBlock {P} at (329,16) size 97x74 [bgcolor=#C0C0C0] [border: (1px solid #000000)]
         RenderBlock {P} at (440,0) size 107x82 [bgcolor=#800080] [border: (1px solid #000000)]
         RenderText {#text} at (0,0) size 0x0
       RenderBlock {P} at (41,214) size 568x120
         RenderInline {SPAN} at (0,0) size 112x112
           RenderText {#text} at (262,4) size 112x112
-            text run at (262,4) width 112: "98"
+            text run at (262,4) width 112: "97"
         RenderInline {SPAN} at (0,0) size 29x112
           RenderText {#text} at (373,4) size 29x112
             text run at (373,4) width 29: "/"
Comment 21 WebKit Commit Bot 2017-05-16 00:25:55 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff) while processing attachment 310228 [details] on bug 172132.
Bot: webkit-cq-02  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 22 WebKit Commit Bot 2017-05-16 00:25:56 PDT
Created attachment 310239 [details]
Archive of layout-test-results from webkit-cq-02
Comment 23 WebKit Commit Bot 2017-05-16 16:50:36 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff, text diff) while processing attachment 310313 [details] on bug 172124.
Bot: webkit-cq-03  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 24 WebKit Commit Bot 2017-05-16 16:50:37 PDT
Created attachment 310318 [details]
Archive of layout-test-results from webkit-cq-03
Comment 25 WebKit Commit Bot 2017-05-17 09:38:51 PDT
The commit-queue just saw http/tests/misc/acid3.html flake (text diff, image diff, text diff) while processing attachment 310396 [details] on bug 172196.
Bot: webkit-cq-03  Port: <class 'webkitpy.common.config.ports.MacPort'>  Platform: Mac OS X 10.11.6
Comment 26 WebKit Commit Bot 2017-05-17 09:38:52 PDT
Created attachment 310400 [details]
Archive of layout-test-results from webkit-cq-03
Comment 27 Radar WebKit Bug Importer 2017-05-17 09:57:44 PDT
<rdar://problem/32249821>
Comment 28 Chris Dumez 2017-05-30 14:34:53 PDT
Test 69 is:
function () {
      // test 69: check that the support files loaded -- preparation for the rest of the tests in this bucket
      assert(!(kungFuDeathGrip == null), "kungFuDeathGrip was null");
      assert(!(kungFuDeathGrip.title == null), "kungFuDeathGrip.title was null");
      if (kungFuDeathGrip.title.length < 7)
        return "retry";
      assert(!(kungFuDeathGrip.firstChild == null), "kungFuDeathGrip.firstChild was null");
      assert(!(kungFuDeathGrip.firstChild.contentDocument == null), "kungFuDeathGrip.firstChild.contentDocument was null");
      assert(!(kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName == null), "kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName was null");
      var t = kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName('text')[0];
      assert(!(t == null), "t was null");
      assert(!(t.parentNode == null), "t.parentNode was null");
      assert(!(t.parentNode.removeChild == null), "t.parentNode.removeChild was null");
      t.parentNode.removeChild(t);
      return 5;
    },
Comment 29 Chris Dumez 2017-05-30 14:35:23 PDT
Test 74 is:
function () {
      // test 74: check getSVGDocument(), from Erik Dahlstrom
      // GetSVGDocument[6]: "In the case where an SVG document is
      // embedded by reference, such as when an XHTML document has an
      // 'object' element whose href (or equivalent) attribute
      // references an SVG document (i.e., a document whose MIME type
      // is "image/svg+xml" and whose root element is thus an 'svg'
      // element), the SVG user agent is required to implement the
      // GetSVGDocument interface for the element which references the
      // SVG document (e.g., the HTML 'object' or comparable
      // referencing elements)."
      //
      // [6] http://www.w3.org/TR/SVG11/struct.html#InterfaceGetSVGDocument
      //
      // iframe
      var iframe = kungFuDeathGrip.childNodes[0];
      assert(iframe, "Failed finding svg iframe.");
      assert(iframe.contentDocument, "contentDocument failed for <iframe> referencing an svg document.");
      if (!iframe.getSVGDocument)
        fail("getSVGDocument missing on <iframe> element.");
      assert(iframe.getSVGDocument(), "getSVGDocument failed for <iframe> referencing an svg document.");
      assert(iframe.getSVGDocument() == iframe.contentDocument, "Mismatch between getSVGDocument and contentDocument #1.");
      // object
      var object = kungFuDeathGrip.childNodes[1];
      assert(object, "Failed finding svg object.");
      assert(object.contentDocument, "contentDocument failed for <object> referencing an svg document.");
      if (!object.getSVGDocument)
        fail("getSVGDocument missing on <object> element.");
      assert(object.getSVGDocument(), "getSVGDocument failed for <object> referencing an svg document.");
      assert(object.getSVGDocument() == object.contentDocument, "Mismatch between getSVGDocument and contentDocument #2.");
      return 5;
    },
Comment 30 Chris Dumez 2017-05-30 16:14:47 PDT
(In reply to Chris Dumez from comment #28)
> Test 69 is:
> function () {
>       // test 69: check that the support files loaded -- preparation for the
> rest of the tests in this bucket
>       assert(!(kungFuDeathGrip == null), "kungFuDeathGrip was null");
>       assert(!(kungFuDeathGrip.title == null), "kungFuDeathGrip.title was
> null");
>       if (kungFuDeathGrip.title.length < 7)
>         return "retry";
>       assert(!(kungFuDeathGrip.firstChild == null),
> "kungFuDeathGrip.firstChild was null");
>       assert(!(kungFuDeathGrip.firstChild.contentDocument == null),
> "kungFuDeathGrip.firstChild.contentDocument was null");
>      
> assert(!(kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName ==
> null), "kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName was
> null");
>       var t =
> kungFuDeathGrip.firstChild.contentDocument.getElementsByTagName('text')[0];
>       assert(!(t == null), "t was null");
>       assert(!(t.parentNode == null), "t.parentNode was null");
>       assert(!(t.parentNode.removeChild == null), "t.parentNode.removeChild
> was null");
>       t.parentNode.removeChild(t);
>       return 5;
>     },

If test69 times out like we see on the bots, then it means the test keeps returning "retry" for 5 seconds. This seems to indicate that this condition is true:
kungFuDeathGrip.title.length < 7.

kungFuDeathGrip.title is updated earlier in the acid3 test during test 65:
function () { 
      // test 65: bring in a couple of SVG files and some HTML files dynamically - preparation for later tests in this bucket
      // NOTE FROM 2011 UPDATE: The svg.xml file still contains the SVG font, but it is no longer used
      kungFuDeathGrip = document.createElement('p');
      kungFuDeathGrip.className = 'removed';
      var iframe, object;
      // svg iframe
      iframe = document.createElement('iframe');
      iframe.onload = function () { kungFuDeathGrip.title += '1' };
      iframe.src = "resources/acid3/svg.xml";
      kungFuDeathGrip.appendChild(iframe);
      // object iframe
      object = document.createElement('object');
      object.onload = function () { kungFuDeathGrip.title += '2' };
      object.data = "resources/acid3/svg.xml";
      kungFuDeathGrip.appendChild(object);
      // xml iframe
      iframe = document.createElement('iframe');
      iframe.onload = function () { kungFuDeathGrip.title += '3' };
      iframe.src = "resources/acid3/empty.xml";
      kungFuDeathGrip.appendChild(iframe);
      // html iframe
      iframe = document.createElement('iframe');
      iframe.onload = function () { kungFuDeathGrip.title += '4' };
      iframe.src = "resources/acid3/empty.html";
      kungFuDeathGrip.appendChild(iframe);
      // html iframe
      iframe = document.createElement('iframe');
      iframe.onload = function () { kungFuDeathGrip.title += '5' };
      iframe.src = "resources/acid3/xhtml.1";
      kungFuDeathGrip.appendChild(iframe);
      // html iframe
      iframe = document.createElement('iframe');
      iframe.onload = function () { kungFuDeathGrip.title += '6' };
      iframe.src = "resources/acid3/xhtml.2";
      kungFuDeathGrip.appendChild(iframe);
      // html iframe
      iframe = document.createElement('iframe');
      iframe.onload = function () { kungFuDeathGrip.title += '7' };
      iframe.src = "resources/acid3/xhtml.3";
      kungFuDeathGrip.appendChild(iframe);
      // add the lot to the document
      document.getElementsByTagName('map')[0].appendChild(kungFuDeathGrip);
      return 5;
    },

So this seems to indicate that one of these frames did not load.
Comment 31 Chris Dumez 2017-05-30 16:33:13 PDT
Given that we see test 74 also timing out sometimes, I believe the issue is with one of these 2:
      // svg iframe
      iframe = document.createElement('iframe');
      iframe.onload = function () { kungFuDeathGrip.title += '1' };
      iframe.src = "resources/acid3/svg.xml";
      kungFuDeathGrip.appendChild(iframe);
      // object iframe
      object = document.createElement('object');
      object.onload = function () { kungFuDeathGrip.title += '2' };
      object.data = "resources/acid3/svg.xml";
      kungFuDeathGrip.appendChild(object);
Comment 32 Chris Dumez 2017-05-31 16:35:34 PDT
Created attachment 311654 [details]
Patch
Comment 33 Chris Dumez 2017-05-31 16:42:33 PDT
Comment on attachment 311654 [details]
Patch

Clearing flags on attachment: 311654

Committed r217640: <http://trac.webkit.org/changeset/217640>
Comment 34 Chris Dumez 2017-05-31 16:42:36 PDT
All reviewed patches have been landed.  Closing bug.