Bug 206296

Summary: REGRESSION (r252205?): [ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html became very flaky
Product: WebKit Reporter: Truitt Savell <tsavell>
Component: ScrollingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, rniwa, simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Truitt Savell 2020-01-15 10:17:17 PST
tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html

Description:
This test has been flaky for a while, history first shows failures starting around r251229.

History:
https://results.webkit.org/?suite=layout-tests&test=tiled-drawing%2Fscrolling%2Ffast-scroll-select-latched-mainframe-with-handler.html&limit=23718

Diff:
--- /Volumes/Data/slave/catalina-debug-tests-wk2/build/layout-test-results/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-expected.txt
+++ /Volumes/Data/slave/catalina-debug-tests-wk2/build/layout-test-results/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler-actual.txt
@@ -14,15 +14,15 @@
 (GraphicsLayer
   (anchor 0.00 0.00)
   (bounds 2008.00 2266.00)
-  (visible rect 0.00, 70.00 785.00 x 585.00)
-  (coverage rect 0.00, 70.00 785.00 x 585.00)
+  (visible rect 0.00, 0.00 785.00 x 585.00)
+  (coverage rect 0.00, 0.00 785.00 x 585.00)
   (intersects coverage rect 1)
   (contentsScale 1.00)
   (children 1
     (GraphicsLayer
       (bounds 2008.00 2266.00)
       (contentsOpaque 1)
-      (visible rect 0.00, 70.00 785.00 x 585.00)
+      (visible rect 0.00, 0.00 785.00 x 585.00)
       (coverage rect 0.00, 0.00 1570.00 x 1755.00)
       (intersects coverage rect 1)
       (contentsScale 1.00)
Comment 1 Radar WebKit Bug Importer 2020-01-15 10:17:34 PST
<rdar://problem/58609558>
Comment 2 Truitt Savell 2020-01-15 10:46:45 PST
This reproduces by running the test in iterations.
Comment 3 Truitt Savell 2020-01-15 10:49:25 PST
I am able to reproduce this on ToT and as far back as r251002, so I am unsure where this really regressed
Comment 4 Truitt Savell 2020-01-15 10:59:12 PST
Marking test as failing on Mac Debug wk2 while this is investigated:
https://trac.webkit.org/changeset/254577/webkit
Comment 5 Alexey Proskuryakov 2020-01-15 22:48:45 PST
This test was failing rarely intake November 7th, when it turned into a very frequent failure. r252205 seems like a very likely culprit.
Comment 6 Alexey Proskuryakov 2020-01-15 22:49:38 PST
> was failing rarely intake November 7th

until November 7th
Comment 7 Ryosuke Niwa 2020-01-15 23:01:02 PST
That seems like a reasonable assessment to me.
Comment 8 Simon Fraser (smfr) 2020-01-17 18:06:24 PST
Created attachment 388124 [details]
Patch
Comment 9 Ryosuke Niwa 2020-01-17 18:59:27 PST
Comment on attachment 388124 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=388124&action=review

> LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:69
> +        eventSender.callAfterScrollingCompletes(checkForScroll);

We should probably wait for requestAnimationFrame after callAfterScrollingCompletes.
Comment 10 Simon Fraser (smfr) 2020-01-17 22:38:06 PST
(In reply to Ryosuke Niwa from comment #9)
> Comment on attachment 388124 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=388124&action=review
> 
> > LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:69
> > +        eventSender.callAfterScrollingCompletes(checkForScroll);
> 
> We should probably wait for requestAnimationFrame after
> callAfterScrollingCompletes.

Ideally eventSender.callAfterScrollingCompletes() would do that internally.
Comment 11 Ryosuke Niwa 2020-01-17 23:03:53 PST
Comment on attachment 388124 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=388124&action=review

>>> LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:69
>>> +        eventSender.callAfterScrollingCompletes(checkForScroll);
>> 
>> We should probably wait for requestAnimationFrame after callAfterScrollingCompletes.
> 
> Ideally eventSender.callAfterScrollingCompletes() would do that internally.

But does it?
Comment 12 WebKit Commit Bot 2020-01-17 23:21:58 PST
Comment on attachment 388124 [details]
Patch

Clearing flags on attachment: 388124

Committed r254793: <https://trac.webkit.org/changeset/254793>
Comment 13 WebKit Commit Bot 2020-01-17 23:22:00 PST
All reviewed patches have been landed.  Closing bug.
Comment 14 Simon Fraser (smfr) 2020-01-21 11:27:51 PST
(In reply to Ryosuke Niwa from comment #11)
> Comment on attachment 388124 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=388124&action=review
> 
> >>> LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:69
> >>> +        eventSender.callAfterScrollingCompletes(checkForScroll);
> >> 
> >> We should probably wait for requestAnimationFrame after callAfterScrollingCompletes.
> > 
> > Ideally eventSender.callAfterScrollingCompletes() would do that internally.
> 
> But does it?

No. But we shouldn't need to wait for rAF; DRT and WTR call Page::updateRendering() when tests complete.
Comment 15 Ryosuke Niwa 2020-01-21 23:41:40 PST
(In reply to Simon Fraser (smfr) from comment #14)
> (In reply to Ryosuke Niwa from comment #11)
> > Comment on attachment 388124 [details]
> > Patch
> > 
> > View in context:
> > https://bugs.webkit.org/attachment.cgi?id=388124&action=review
> > 
> > >>> LayoutTests/tiled-drawing/scrolling/fast-scroll-select-latched-mainframe-with-handler.html:69
> > >>> +        eventSender.callAfterScrollingCompletes(checkForScroll);
> > >> 
> > >> We should probably wait for requestAnimationFrame after callAfterScrollingCompletes.
> > > 
> > > Ideally eventSender.callAfterScrollingCompletes() would do that internally.
> > 
> > But does it?
> 
> No. But we shouldn't need to wait for rAF; DRT and WTR call
> Page::updateRendering() when tests complete.

Ah, I see.