Intermittent gfx/layers/apz/test/mochitest/browser_test_scroll_thumb_dragging.js | Test timed out -
Categories
(Core :: Panning and Zooming, defect, P5)
Tracking
()
Tracking | Status | |
---|---|---|
firefox98 | --- | fixed |
People
(Reporter: intermittent-bug-filer, Assigned: hiro)
Details
(Keywords: intermittent-failure, Whiteboard: [stockwell unknown])
Attachments
(1 file)
Filed by: cbrindusan [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=329957017&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/C2sd0W4eSx66iw0gfwpiow/runs/2/artifacts/public/logs/live_backing.log
Reftest URL: https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/C2sd0W4eSx66iw0gfwpiow/runs/2/artifacts/public/logs/live_backing.log&only_show_unexpected=1
[task 2021-02-14T23:39:45.759Z] 23:39:45 INFO - TEST-START | gfx/layers/apz/test/mochitest/browser_test_scroll_thumb_dragging.js
[task 2021-02-14T23:39:47.170Z] 23:39:47 INFO - GECKO(3448) | PromiseApzRepaintsFlushed: Flushed APZ repaints, waiting for callback...
[task 2021-02-14T23:39:47.226Z] 23:39:47 INFO - GECKO(3448) | PromiseApzRepaintsFlushed: APZ flush done
[task 2021-02-14T23:39:47.246Z] 23:39:47 INFO - GECKO(3448) | WaitUntilApzStable: flushed APZ repaints in parent proc, waiting for callback...
[task 2021-02-14T23:39:47.275Z] 23:39:47 INFO - GECKO(3448) | WaitUntilApzStable: APZ flush done in parent proc
[task 2021-02-14T23:39:47.275Z] 23:39:47 INFO - GECKO(3448) | WaitUntilApzStable: got apz-flush-done in child proc
[task 2021-02-14T23:39:47.275Z] 23:39:47 INFO - GECKO(3448) | WaitUntilApzStable: done promiseFocus
[task 2021-02-14T23:39:47.275Z] 23:39:47 INFO - GECKO(3448) | WaitUntilApzStable: done promiseAllPaintsDone
[task 2021-02-14T23:39:47.276Z] 23:39:47 INFO - GECKO(3448) | PromiseApzRepaintsFlushed: Flushed APZ repaints, waiting for callback...
[task 2021-02-14T23:39:47.292Z] 23:39:47 INFO - GECKO(3448) | PromiseApzRepaintsFlushed: APZ flush done
[task 2021-02-14T23:39:47.292Z] 23:39:47 INFO - GECKO(3448) | WaitUntilApzStable: all done
[task 2021-02-14T23:39:47.300Z] 23:39:47 INFO - GECKO(3448) | Starting drag at 1274, 17 from top-left of #
[task 2021-02-14T23:40:30.776Z] 23:40:30 INFO - TEST-INFO | started process screentopng
[task 2021-02-14T23:40:31.047Z] 23:40:31 INFO - TEST-INFO | screentopng: exit 0
[task 2021-02-14T23:40:31.047Z] 23:40:31 INFO - Buffered messages logged at 23:39:45
[task 2021-02-14T23:40:31.047Z] 23:40:31 INFO - Entering test bound
[task 2021-02-14T23:40:31.047Z] 23:40:31 INFO - Buffered messages logged at 23:39:46
[task 2021-02-14T23:40:31.047Z] 23:40:31 INFO - Console message: [JavaScript Error: "The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol." {file: "http://mochi.test:8888/browser/gfx/layers/apz/test/mochitest/helper_scroll_thumb_dragging.html" line: 0}]
[task 2021-02-14T23:40:31.047Z] 23:40:31 INFO - Buffered messages finished
[task 2021-02-14T23:40:31.047Z] 23:40:31 INFO - TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/browser_test_scroll_thumb_dragging.js | Test timed out - ```
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Updated•3 years ago
|
Comment 3•3 years ago
|
||
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
For more information, please visit auto_nag documentation.
Comment hidden (Intermittent Failures Robot) |
Updated•3 years ago
|
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 21•3 years ago
|
||
https://wiki.mozilla.org/Bug_Triage#Intermittent_Test_Failure_Cleanup
For more information, please visit auto_nag documentation.
Updated•3 years ago
|
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment hidden (Intermittent Failures Robot) |
Comment 35•2 years ago
|
||
Update:
There have been 29 failures within the last 7 days:
• 23 failures on Linux 18.04 x64 WebRender opt
• 6 failures on Linux 18.04 x64 WebRender Shippable opt
Recent failure log: https://treeherder.mozilla.org/logviewer?job_id=364066726&repo=autoland&lineNumber=11207
[task 2022-01-13T22:47:43.735Z] 22:47:43 INFO - TEST-START | gfx/layers/apz/test/mochitest/browser_test_scroll_thumb_dragging.js
[task 2022-01-13T22:47:44.339Z] 22:47:44 INFO - GECKO(742) | PromiseApzRepaintsFlushed: Flushed APZ repaints, waiting for callback...
[task 2022-01-13T22:47:44.360Z] 22:47:44 INFO - GECKO(742) | PromiseApzRepaintsFlushed: APZ flush done
[task 2022-01-13T22:47:44.392Z] 22:47:44 INFO - GECKO(742) | WaitUntilApzStable: flushed APZ repaints in parent proc, waiting for callback...
[task 2022-01-13T22:47:44.394Z] 22:47:44 INFO - GECKO(742) | WaitUntilApzStable: APZ flush done in parent proc
[task 2022-01-13T22:47:44.395Z] 22:47:44 INFO - GECKO(742) | WaitUntilApzStable: got apz-flush-done in child proc
[task 2022-01-13T22:47:44.396Z] 22:47:44 INFO - GECKO(742) | WaitUntilApzStable: done promiseFocus
[task 2022-01-13T22:47:44.397Z] 22:47:44 INFO - GECKO(742) | WaitUntilApzStable: done promiseAllPaintsDone
[task 2022-01-13T22:47:44.398Z] 22:47:44 INFO - GECKO(742) | PromiseApzRepaintsFlushed: Flushed APZ repaints, waiting for callback...
[task 2022-01-13T22:47:44.417Z] 22:47:44 INFO - GECKO(742) | PromiseApzRepaintsFlushed: APZ flush done
[task 2022-01-13T22:47:44.418Z] 22:47:44 INFO - GECKO(742) | WaitUntilApzStable: all done
[task 2022-01-13T22:47:44.436Z] 22:47:44 INFO - GECKO(742) | Starting drag at 1274, 17 from top-left of #
[task 2022-01-13T22:48:28.754Z] 22:48:28 INFO - TEST-INFO | started process screentopng
[task 2022-01-13T22:48:29.200Z] 22:48:29 INFO - TEST-INFO | screentopng: exit 0
[task 2022-01-13T22:48:29.200Z] 22:48:29 INFO - Buffered messages logged at 22:47:43
[task 2022-01-13T22:48:29.201Z] 22:48:29 INFO - Entering test bound
[task 2022-01-13T22:48:29.201Z] 22:48:29 INFO - Buffered messages logged at 22:47:44
[task 2022-01-13T22:48:29.201Z] 22:48:29 INFO - Console message: [JavaScript Warning: "This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”." {file: "http://example.org/" line: 0}]
[task 2022-01-13T22:48:29.201Z] 22:48:29 INFO - Buffered messages finished
[task 2022-01-13T22:48:29.201Z] 22:48:29 INFO - TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/browser_test_scroll_thumb_dragging.js | Test timed out -
[task 2022-01-13T22:48:29.202Z] 22:48:29 INFO - GECKO(742) | MEMORY STAT | vsize 3138MB | residentFast 346MB | heapAllocated 235MB
[task 2022-01-13T22:48:29.203Z] 22:48:29 INFO - TEST-OK | gfx/layers/apz/test/mochitest/browser_test_scroll_thumb_dragging.js | took 45023ms
[task 2022-01-13T22:48:29.204Z] 22:48:29 INFO - checking window state
[task 2022-01-13T22:48:29.205Z] 22:48:29 INFO - Not taking screenshot here: see the one that was previously logged
[task 2022-01-13T22:48:29.206Z] 22:48:29 INFO - TEST-UNEXPECTED-FAIL | gfx/layers/apz/test/mochitest/browser_test_scroll_thumb_dragging.js | Found a browser window after previous test timed out -
[task 2022-01-13T22:48:29.206Z] 22:48:29 INFO - GECKO(742) | must wait for focus
[task 2022-01-13T22:48:29.210Z] 22:48:29 INFO - TEST-START | gfx/layers/apz/test/mochitest/browser_test_scrolling_in_extension_popup_window.js
Comment 36•2 years ago
|
||
Hi Ballo! Can you please take a look at this and maybe you could help us assign this to someone?
Thank you!
Comment 37•2 years ago
|
||
Forwarding to Hiro as the author of the test.
Assignee | ||
Comment 38•2 years ago
|
||
Assigning to me. (though I haven't been able to reproduce the failure locally)
Comment hidden (Intermittent Failures Robot) |
Assignee | ||
Comment 40•2 years ago
|
||
I tried some try runs with logging, it turned out there's an unexpected mouse up event so that scrollbar dragging is cancelled by the event. The mouse up event comes from this DispatchMissedButtonReleases call.
:karlt, the DispatchMissedButtonReleases was introduced in bug 544211 to fix an issue on flash, is it still necessary? If it's still necessary, how can we avoid the situation? The test in question here is just doing
- open a new browser window
- send a mouse move event on a scrollbar thumb in the window
- send a mouse down event to the scrollbar thumb
- send a mouse move event to move the thumb
- send a mouse up event.
Looks like DispatchMissedButtonReleases is called in between 3 and 4 in the failure case.
Comment 41•2 years ago
|
||
The synthesized mouse button release would be dispatched because the event state
is indicating that the button is not down. Synthesized events implement state
only for keyboard state.
However, if the UngrabPointer()
method can be removed, then I would hope that DispatchMissedButtonReleases()
is no longer needed.
Some state management would be required to cancel setCapture()
when a grab or drag steals ownership of pending button release events, but this already exists for at least drags, and more-or-less needed to exist already for sane timing because the timing provided DispatchMissedButtonReleases()
was not sane.
Assignee | ||
Comment 42•2 years ago
|
||
Thank you Karl. With your comment now I found what's wrong. Reading carefully one of the log;
Starting drag at 1274, 17 from top-left of #
D/Widget [7fdde05e4c00]: Button 1 press
D/Widget [7fdde05e4c00]: Synthesized button 1 release
D/apz.controller 7fdddfd86800 ending drag
D/apz.controller 7fdddfd86800 changing from state SCROLLBAR_DRAG to NOTHING
D/apz.controller 7fdddfd86800 scroll snapping near (0,0)
D/Widget [7fdde05e4c00]: OnEnterNotify
It shows me that OnEnterNotify gets called after the mouse down event, so that the scroll bar dragging was cancelled unfortunately. It also realized me that on my Linux box, I've been using "Focus on Hover" behavior, thus I can't reproduce the issue locally. I suppose on our CIs, the behavior must be "Click To Focus". I am going to add a click event before start dragging to make sure OnEnterNotify gets called. FWIW, adding await promiseFocus()
didn't help.
Assignee | ||
Comment 43•2 years ago
|
||
On Linux if a new browser window received a mouse down event before
OnEnterNotifyEvent gets called, a mouse up event is fired via a
DispatchMissedButtonReleases [1] call in OnEnterNotifyEvent. It cancells
scrollbar dragging trigged by the mouse down event unfortunately. To avoid
this situation we send a click event before start dragging.
Assignee | ||
Comment 44•2 years ago
|
||
Thank you, arai and Timothy for the quick review. That said, this is tough. With D136452 the test still fails, so I tried another try run with logging, it turned out that now no mouse up event happened. In the mean time, I did push another try run with an additional mouse move event to make sure the click event happens on the new browser window, it's hard to tell whether it's effective for the "no mouse up event case", but so far the result looks good. So I am going to land with the additional mouse move here.
Comment 45•2 years ago
|
||
Pushed by hikezoe.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a0839052055c Send a click event on the target window to make sure OnEnterNotifyEvent gets called before start dragging on Linux. r=tnikkel,arai
Comment 46•2 years ago
|
||
bugherder |
Comment hidden (Intermittent Failures Robot) |
Description
•