Bug 308165
| Summary: | [macOS Debug] scrollingcoordinator/mac/latching/simple-page-rubberbands.html is a flaky text failure | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Diego De La Toba <d_delatoba> |
| Component: | Scrolling | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | simon.fraser, webkit-bot-watchers-bugzilla, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Diego De La Toba
scrollingcoordinator/mac/latching/simple-page-rubberbands.html is a flaky text failure on MacOS Debug.
HISTORY:
https://results.webkit.org/?suite=layout-tests&test=scrollingcoordinator%2Fmac%2Flatching%2Fsimple-page-rubberbands.html
TEXT DIFF:
--- /Volumes/Data/worker/Apple-Tahoe-Debug-AppleSilicon-WK2-Tests/build/layout-test-results/scrollingcoordinator/mac/latching/simple-page-rubberbands-expected.txt
+++ /Volumes/Data/worker/Apple-Tahoe-Debug-AppleSilicon-WK2-Tests/build/layout-test-results/scrollingcoordinator/mac/latching/simple-page-rubberbands-actual.txt
@@ -6,12 +6,12 @@
Swipe to the left
PASS minXOffset < 0 is true
-PASS maxXOffset is 0
+FAIL maxXOffset should be 0. Was -4.
PASS minYOffset is 0
PASS maxYOffset is 0
Swipe to the right
-PASS minXOffset is 0
+FAIL minXOffset should be 0. Was -3.
PASS maxXOffset > 0 is true
PASS minYOffset is 0
PASS maxYOffset is 0
DIFF URL:
https://build.webkit.org/results/Apple-Tahoe-Debug-AppleSilicon-WK2-Tests/307769@main%20(911)/scrollingcoordinator/mac/latching/simple-page-rubberbands-pretty-diff.html
REPRODUCTION:
I was able to reproduce this failure with the following on macOS Tahoe Debug ToT:
run-webkit-tests --no-build --no-retry --no-show-results --exit-after-n-failures=1000 --expect-pass --iterations=1000 --force -f --clobber-old-results --debug scrollingcoordinator/mac/latching/simple-page-rubberbands.html
I am going to mark expectations as pass fail while this pends investigation.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/170669755>
Diego De La Toba
Pull request: https://github.com/WebKit/WebKit/pull/58954
EWS
Test gardening commit 307789@main (54d05e718e1b): <https://commits.webkit.org/307789@main>
Reviewed commits have been landed. Closing PR #58954 and removing active labels.
Diego De La Toba
Pull request: https://github.com/WebKit/WebKit/pull/58962
Diego De La Toba
I think the -1000 sentinel is problematic.
With maxXOffset = -1000, for "Swipe to the left" with scroll events at -10, -8, -6, -4, -2:
- maxXOffset = Math.max(-1000, -10, -8, -6, -4, -2) = -2
- Check shouldBe('maxXOffset', '0') fails because -2 ≠ 0
This only passes if a scroll event fires when rubber-band returns to position 0:
- maxXOffset = Math.max(-1000, -10, ..., -2, 0) = 0
But that final scroll event at position 0 doesn't always fire, causing flakiness.
The fix: Initialize maxXOffset = 0 (and maxYOffset = 0).
Caveat: If this is a real WebKit bug where scroll events SHOULD fire at position 0 per spec, this fix masks the issue since we no longer verify a scroll event fired at the final position.
The test still verifies:
- Rubber-band happened (scroll went negative)
- Scroll didn't go in wrong direction (never went positive)