Open Bug 1785551 Opened 2 years ago Updated 3 days ago

Intermittent /css/css-scroll-snap/input/keyboard.html | single tracking bug

Categories

(Core :: Layout: Scrolling and Overflow, defect, P3)

defect

Tracking

()

REOPENED

People

(Reporter: jmaher, Assigned: hiro)

References

Details

(Keywords: intermittent-failure, intermittent-testcase, Whiteboard: , [wptsync upstream][stockwell unknown])

Attachments

(1 file)

No description provided.

Additional information about this bug failures and frequency patterns can be found by running: ./mach test-info failure-report --bug 1785551

Perma failures are actually Bug 1840239

There have been 32 total failures in the last 7 days.
There are:

  • 2 failures on linux1804-64-tsan-qr opt
  • 8 failures on linux1804-64-shippable-qr opt
  • 7 failures on linux1804-64-qr opt and debug
  • 13 failures on linux1804-64-asan-qr opt
  • 2 failures on android-em-7-0-x86_64-qr debug

Recent failure log.

Hiroyuki, as the owner of this component, can you help us assign the bug to someone? Thank you.

Flags: needinfo?(hikezoe.birchill)
Whiteboard: [stockwell needswork:owner]

I guess Chrome's implementation scrolls the given scroll position of the scroll
operation once then snaps to the snap destination, thus there are 3 or more
scroll events. But Firefox scrolls to the snap destination from the beginning.

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED
Flags: needinfo?(hikezoe.birchill)
Attachment #9342882 - Attachment description: Bug 1785551 - Allow 2 observed scroll events to make sure scroll snapping doesn't snap to the snap destination. r?botond → Bug 1785551 - Allow 2 observed scroll events to make sure scroll snapping doesn't snap to the snap destination instantly. r?botond
Pushed by hikezoe.birchill@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/47c72d2828f6
Allow 2 observed scroll events to make sure scroll snapping doesn't snap to the snap destination instantly. r=botond
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/40936 for changes under testing/web-platform/tests
Whiteboard: [stockwell needswork:owner] → [stockwell needswork:owner], [wptsync upstream]
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → 117 Branch
Upstream PR merged by moz-wptsync-bot

This still seems to be happening as seen here

Flags: needinfo?(hikezoe.birchill)

Yeah, unfortunately that's kinda expected on slow environments. If it often happens we should add an annotation to allow it.

Flags: needinfo?(hikezoe.birchill)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: 117 Branch → ---

I was a bit surprised that there are still a bunch of test failures where we got only one scroll event even on opt builds. Rather it looks like most of failures happened on opt builds. So my guess was wrong, it often happens on faster environments?

One more interesting thing is today I ran this test on Mac, the test also fails with the one scroll event observation. So, I suppose the expected behavior is expected only on Chrome, not on other platforms.

Update:
There have been 61 failures within the last 7 days:
• 1 failures on Linux 18.04 x64 WebRender Shippable opt
• 3 failures on Linux 18.04 x64 WebRender opt
• 3 failures on Linux 18.04 x64 WebRender debug
• 2 failures on Linux 18.04 x64 WebRender asan opt
• 1 failures on Android 7.0 x86-64 WebRender opt Web
• 49 failures on Android 7.0 x86-64 WebRender debug
• 2 failures on Android 7.0 x86-64 Lite WebRender opt
Recent failure log: https://treeherder.mozilla.org/logviewer?job_id=434207267&repo=autoland&lineNumber=22575

[task 2023-10-30T04:41:27.419Z] 04:41:27     INFO - TEST-START | /css/css-scroll-snap/input/keyboard.html
[task 2023-10-30T04:41:27.566Z] 04:41:27     INFO - Setting pref dom.animations-api.compositing.enabled to true
[task 2023-10-30T04:41:27.654Z] 04:41:27     INFO - PID 24473 | console.error: ({})
[task 2023-10-30T04:41:30.212Z] 04:41:30     INFO - PID 24473 | [Parent 24473, IPC I/O Parent] WARNING: Process 24593 may be hanging at shutdown; will wait for up to 40000ms: file /builds/worker/checkouts/gecko/ipc/chromium/src/chrome/common/process_watcher_posix_sigchld.cc:184
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - 
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - TEST-PASS | /css/css-scroll-snap/input/keyboard.html | Snaps to bottom-left after pressing ArrowDown 
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - TEST-PASS | /css/css-scroll-snap/input/keyboard.html | Snaps to top-left after pressing ArrowUp 
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - TEST-UNEXPECTED-FAIL | /css/css-scroll-snap/input/keyboard.html | Snaps to top-right after pressing ArrowRight - assert_greater_than: expected a number greater than 1 but got 1
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - @http://web-platform.test:8000/css/css-scroll-snap/input/keyboard.html:91:22
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - 
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - TEST-KNOWN-INTERMITTENT-FAIL | /css/css-scroll-snap/input/keyboard.html | Snaps to top-left after pressing ArrowLeft - assert_greater_than: expected a number greater than 1 but got 1
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - @http://web-platform.test:8000/css/css-scroll-snap/input/keyboard.html:103:22
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - ....
[task 2023-10-30T04:41:31.399Z] 04:41:31     INFO - TEST-OK | /css/css-scroll-snap/input/keyboard.html | took 3981ms
Whiteboard: , [wptsync upstream][stockwell unknown] → , [wptsync upstream][stockwell needswork:owner]

Hi Hiroyuki! Can you please take another look at this?
Thank you!

Flags: needinfo?(hikezoe.birchill)

Note that since bug 1859716 (https://hg.mozilla.org/integration/autoland/rev/8923dca93b80#l24.1) one of the test cases has been marked as intermittent on Android, thus the failure frequency significantly dropped. The test case is still flaky on Android, see this try result.

There are two different types of failures;

assert_greater_than: expected a number greater than 1 but got 1

and

assert_greater_than: expected a number greater than 1 but got 0

On Android the latter case is the majority of failures.

I believe the former isn't a big problem, since what the test does is what the current Chrome behavior is. When a scroll operation happens, Chrome does scroll to the given scroll destination first then snaps to a snap position. Thus they observes at least 2 scroll events when snapping happened. Whereas Firefox scrolls to the snap position, thus if the scroll operation was processed asynchronously, there are possibly multiple scroll events, but it depends on timing and the duration of the async scroll animation. This is the former case. Note that the CSS scroll snap module v1 spec doesn't define these kind of behaviors at all, maybe it was originally out of the scope of the spec definitions, given that the spec clearly mentions This module defines controls for scroll snap positions rather than "how to scroll to the chosen snap position". Though we might end up opening a spec issue for this behavior difference.

The latter case is also kinda spec gap. In this failure case, a scrollend event is dispatched before a scroll event is dispatched. Intuitively scroll events need to be dispatched before any scrollend events, but it's ambiguous to me from the CSS OM spec reading.

I am going to leave this test as it is for now since the failure frequency dropped. Also note that this test is one of the tests in interop 2023, but it's stable on the wpt dashboard as far as I can tell.

CCing Dan.

Flags: needinfo?(hikezoe.birchill)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: