NEW 224121
REGRESSION: [ EWS iOS wk2 ] css2.1/20110323/replaced-intrinsic-ratio-001.htm is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=224121
Summary REGRESSION: [ EWS iOS wk2 ] css2.1/20110323/replaced-intrinsic-ratio-001.htm ...
Robert Jenner
Reported 2021-04-02 11:59:15 PDT
css2.1/20110323/replaced-intrinsic-ratio-001.htm is a flakey text failure on wk2 EWS and iOS. HISTORY URL: https://results.webkit.org/?suite=layout-tests&test=css2.1%2F20110323%2Freplaced-intrinsic-ratio-001.htm EWS URL: https://ews-build.webkit.org/#/builders/51/builds/10475 TEXT DIFF: RenderSVGPath {path} at (26,8) size 124x28 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] RenderBlock {P} at (1,337) size 240x16 RenderEmbeddedObject {OBJECT} at (16,0) size 208x76 [bgcolor=#FF0000] [border: (16px solid #0000FF)] - layer at (0,0) size 176x44 - RenderView at (0,0) size 176x44 - layer at (0,0) size 176x44 - RenderSVGRoot {svg} at (0,0) size 176x44 - RenderSVGRect {rect} at (0,0) size 176x44 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] - RenderSVGPath {path} at (26,8) size 124x28 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] + layer at (0,0) size 300x150 + RenderView at (0,0) size 300x150 + layer at (0,0) size 300x150 + RenderSVGRoot {svg} at (0,0) size 300x77 + RenderSVGRect {rect} at (0,0) size 300x77 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] + RenderSVGPath {path} at (45,15) size 210x45 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] RenderTable at (1,449) size 240x79 RenderTableSection (anonymous) at (0,0) size 240x79 RenderTableRow (anonymous) at (0,0) size 240x79 RenderTableCell {P} at (0,0) size 240x79 [r=0 c=0 rs=1 cs=1] RenderEmbeddedObject {OBJECT} at (16,0) size 208x76 [bgcolor=#FF0000] [border: (16px solid #0000FF)] - layer at (0,0) size 176x44 - RenderView at (0,0) size 176x44 - layer at (0,0) size 176x44 - RenderSVGRoot {svg} at (0,0) size 176x44 - RenderSVGRect {rect} at (0,0) size 176x44 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] - RenderSVGPath {path} at (26,8) size 124x28 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] + layer at (0,0) size 300x150 + RenderView at (0,0) size 300x150 + layer at (0,0) size 300x150 + RenderSVGRoot {svg} at (0,0) size 300x77 + RenderSVGRect {rect} at (0,0) size 300x77 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] + RenderSVGPath {path} at (45,15) size 210x45 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] RenderTable {TABLE} at (1,624) size 240x79 RenderTableSection {TBODY} at (0,0) size 240x79 RenderTableRow {TR} at (0,0) size 240x79 RenderTableCell {TD} at (0,0) size 240x79 [r=0 c=0 rs=1 cs=1] RenderEmbeddedObject {OBJECT} at (16,0) size 208x76 [bgcolor=#FF0000] [border: (16px solid #0000FF)] - layer at (0,0) size 176x44 - RenderView at (0,0) size 176x44 - layer at (0,0) size 176x44 - RenderSVGRoot {svg} at (0,0) size 176x44 - RenderSVGRect {rect} at (0,0) size 176x44 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] - RenderSVGPath {path} at (26,8) size 124x28 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] + layer at (0,0) size 300x150 + RenderView at (0,0) size 300x150 + layer at (0,0) size 300x150 + RenderSVGRoot {svg} at (0,0) size 300x77 + RenderSVGRect {rect} at (0,0) size 300x77 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] + RenderSVGPath {path} at (45,15) size 210x45 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] RenderBlock (floating) {P} at (1,799) size 240x16 RenderEmbeddedObject {OBJECT} at (16,0) size 208x76 [bgcolor=#FF0000] [border: (16px solid #0000FF)] - layer at (0,0) size 176x44 - RenderView at (0,0) size 176x44 - layer at (0,0) size 176x44 - RenderSVGRoot {svg} at (0,0) size 176x44 - RenderSVGRect {rect} at (0,0) size 176x44 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] - RenderSVGPath {path} at (26,8) size 124x28 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"] + layer at (0,0) size 300x150 + RenderView at (0,0) size 300x150 + layer at (0,0) size 300x150 + RenderSVGRoot {svg} at (0,0) size 300x77 + RenderSVGRect {rect} at (0,0) size 300x77 [stroke={[type=SOLID] [color=#008000] [stroke width=12.00]}] [fill={[type=SOLID] [color=#00FF00]}] [x=0.00] [y=0.00] [width=1000.00] [height=250.00] + RenderSVGPath {path} at (45,15) size 210x45 [fill={[type=SOLID] [color=#008000]}] [data="M 500 50 L 150 200 L 850 200 Z"]
Attachments
Patch (2.92 KB, patch)
2021-05-20 13:50 PDT, Said Abou-Hallawa
no flags
Patch (2.95 KB, patch)
2021-05-20 13:56 PDT, Said Abou-Hallawa
sabouhallawa: review?
Radar WebKit Bug Importer
Comment 1 2021-04-02 12:13:26 PDT
Robert Jenner
Comment 2 2021-04-02 12:28:55 PDT
Was able to reproduce the failure at iOS 14 Simulator Release ToT using the following test: run-webkit-tests --ios-simulator --iterations 1000 -f css2.1/20110323/replaced-intrinsic-ratio-001.htm The test is flakey, and I can't bisect to a specific regression point because there are a lot of revisions that did not get built that I would need in order narrow down where it started. The first failure occurred at r275303. The closest available build to that was r275285, and when I tested on that build, I could not reproduce the failure.. I suspect a change was introduced somewhere between r275303 and r275285 that caused the test to start flakey failing, but I'm not sure which one.
Robert Jenner
Comment 3 2021-04-02 13:25:14 PDT
Updated test expectations here to Pass Failure: https://trac.webkit.org/changeset/275435/webkit
Alexey Proskuryakov
Comment 4 2021-04-06 10:33:56 PDT
This test doesn't appear to have any potentially flaky content like timers, so this has to be a layout stability regression.
Said Abou-Hallawa
Comment 5 2021-05-20 12:37:12 PDT
This bug is similar to bug 208577 and bug 206254 where some elements in the page reference an external SVG image. In some case, the layout and the rendering of this SVG image is racy such that it gets laid out and rendered using the inline replaced box default size which is 300x150.
Said Abou-Hallawa
Comment 6 2021-05-20 13:50:12 PDT
Said Abou-Hallawa
Comment 7 2021-05-20 13:56:25 PDT
Simon Fraser (smfr)
Comment 8 2021-05-20 14:59:11 PDT
Comment on attachment 429214 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=429214&action=review > LayoutTests/css2.1/20110323/replaced-intrinsic-ratio-001.htm:49 > + if (window.testRunner) > + testRunner.waitUntilDone(); > + window.addEventListener('load', () => { > + document.body.offsetHeight; > + if (window.testRunner) > + testRunner.notifyDone(); > + }); I would expect this to be a no-op, but perhaps there's a reason it isn't. WTR waits for the load event before it finishes the test, and it forces a layout before dumping the results. So what does this trigger that doesn't already happen?
Alexey Proskuryakov
Comment 9 2021-05-21 09:25:27 PDT
Comment on attachment 429214 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=429214&action=review > LayoutTests/ChangeLog:9 > + Sometimes there is a race between the layout and the rendering of the SVG Is this race correct behavior, or a WebKit bug? As Simon said, it is not super clear why the fix changes the behavior.
Note You need to log in before you can comment on or make changes to this bug.