Closed Bug 1573846 Opened 1 year ago Closed 1 year ago

Perma Tier 2 fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"X,Y"}

Categories

(Firefox :: Session Restore, defect, P5)

defect

Tracking

()

RESOLVED WORKSFORME
Fission Milestone M4.1

People

(Reporter: intermittent-bug-filer, Assigned: botond)

References

(Blocks 2 open bugs)

Details

(Keywords: intermittent-failure, regression)

Filed by: rmaries [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=261583929&repo=mozilla-central
Full log: https://queue.taskcluster.net/v1/task/cKExPixtQ9a7hRc3EegcMA/runs/0/artifacts/public/logs/live_backing.log


[task 2019-08-14T13:11:26.750Z] 13:11:26 INFO - TEST-START | browser/components/sessionstore/test/browser_scrollPositions.js
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - TEST-UNEXPECTED-FAIL | browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"}
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - Stack trace:
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - chrome://mochikit/content/browser-test.js:test_is:1591
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - chrome://mochitests/content/browser/browser/components/sessionstore/test/head.js:checkScroll:666
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - chrome://mochitests/content/browser/browser/components/sessionstore/test/browser_scrollPositions.js:test_scroll:53
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1346
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1381
[task 2019-08-14T13:11:28.654Z] 13:11:28 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:1209
[task 2019-08-14T13:11:28.654Z] 13:11:28 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:803
[task 2019-08-14T13:11:28.654Z] 13:11:28 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-08-14T13:11:28.654Z] 13:11:28 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | force-reload resets scroll positions -
[task 2019-08-14T13:11:30.307Z] 13:11:30 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | no scroll stored -
[task 2019-08-14T13:11:30.308Z] 13:11:30 INFO - Leaving test bound test_scroll
[task 2019-08-14T13:11:30.308Z] 13:11:30 INFO - Entering test bound test_scroll_nested
[task 2019-08-14T13:11:30.607Z] 13:11:30 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-08-14T13:11:30.890Z] 13:11:30 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-08-14T13:11:30.892Z] 13:11:30 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-08-14T13:11:31.614Z] 13:11:31 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | scroll is fine -
[task 2019-08-14T13:11:33.627Z] 13:11:33 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | scroll is fine -

[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | scroll position has been duplicated correctly -
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - Buffered messages finished
[task 2019-08-14T13:11:28.653Z] 13:11:28 INFO - TEST-UNEXPECTED-FAIL | browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"}
[...]

It started to fail as a high frequency intermittent with this merge: https://hg.mozilla.org/mozilla-central/pushloghtml?changeset=598d441e4ebaa93ab098d266035a396057c82129 maybe caused by https://hg.mozilla.org/mozilla-central/rev/5d38d3937cac708cbb16a2c465243f8caba398be
Th retriggers: https://tinyurl.com/y56a2rsn
Mike, could you redirect this to someone to take a look or can we disable the test on fission?

Flags: needinfo?(mdeboer)
Summary: Intermittent browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"} → Perma fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"}

Rob, could you please take a look over this? Thank you.

Flags: needinfo?(rob)
Summary: Perma fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"} → High frequent fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"}

It's unlikely for my change (https://hg.mozilla.org/mozilla-central/rev/5d38d3937cac708cbb16a2c465243f8caba398be) to have caused the test failures, because my change is a UI-only change (in about:addons), plus unit tests for it.

The test from this subject does not open about:addons.

Flags: needinfo?(rob)

Neil might know, perhaps?

Flags: needinfo?(mdeboer) → needinfo?(enndeakin)

I don't know much about scrolling, but another bug in that range, bug 1574493, looks related to scrolling. Maybe the cause?

Flags: needinfo?(enndeakin) → needinfo?(aosmond)

My change should only impact WebRender. If it is permafailing on non-WR tests (like in comment 4) it is unlikely to be my changes in this push. I did notice bug 1580307 which changes some scrollbar CSS defaults was in the same try. Emilio, could it be related?

Flags: needinfo?(aosmond) → needinfo?(emilio)

Nope, not quite... My patch changed a property that isn't used, just to avoid an assertion.

Is there any way to do retriggers so that we find the culprit?

Flags: needinfo?(emilio)
Summary: High frequent fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"} → Intermittent fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"}

This seems to be permafailing on central: https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&fromchange=4314b9f7e9923820472d33436673407eb3348242&searchStr=linux%2Cx64%2Copt%2Cmochitests%2Cwith%2Cfission%2Cenabled%2Ctest-linux64%2Fopt-mochitest-browser-chrome-fis-e10s&tochange=35436d4e7917bf9d9b96a6173201ca001a8ff7bc

[task 2019-11-13T21:46:24.727Z] 21:46:24 INFO - TEST-START | browser/components/sessionstore/test/browser_scrollPositions.js
[task 2019-11-13T21:46:26.509Z] 21:46:26 INFO - TEST-INFO | started process screentopng
[task 2019-11-13T21:46:26.791Z] 21:46:26 INFO - TEST-INFO | screentopng: exit 0
[task 2019-11-13T21:46:26.792Z] 21:46:26 INFO - Buffered messages logged at 21:46:24
[task 2019-11-13T21:46:26.792Z] 21:46:26 INFO - Entering test bound test_scroll
[task 2019-11-13T21:46:26.793Z] 21:46:26 INFO - Buffered messages logged at 21:46:25
[task 2019-11-13T21:46:26.793Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: currentRemoteType (webIsolated=http://example.com) preferredRemoteType: webIsolated=http://example.com
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: webIsolated=http://example.com, webIsolated=http://example.com, false
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - Buffered messages logged at 21:46:26
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | scroll is fine -
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: currentRemoteType (webIsolated=http://example.com) preferredRemoteType: webIsolated=http://example.com
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: webIsolated=http://example.com, webIsolated=http://example.com, false
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-11-13T21:46:26.794Z] 21:46:26 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | scroll position has been duplicated correctly -
[task 2019-11-13T21:46:26.795Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: currentRemoteType (webIsolated=http://example.com) preferredRemoteType: webIsolated=http://example.com
[task 2019-11-13T21:46:26.795Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: webIsolated=http://example.com, webIsolated=http://example.com, false
[task 2019-11-13T21:46:26.796Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-11-13T21:46:26.796Z] 21:46:26 INFO - Buffered messages finished
[task 2019-11-13T21:46:26.797Z] 21:46:26 INFO - TEST-UNEXPECTED-FAIL | browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"153,224"}
[task 2019-11-13T21:46:26.797Z] 21:46:26 INFO - Stack trace:
[task 2019-11-13T21:46:26.797Z] 21:46:26 INFO - chrome://mochikit/content/browser-test.js:test_is:1314
[task 2019-11-13T21:46:26.798Z] 21:46:26 INFO - chrome://mochitests/content/browser/browser/components/sessionstore/test/head.js:checkScroll:666
[task 2019-11-13T21:46:26.798Z] 21:46:26 INFO - chrome://mochitests/content/browser/browser/components/sessionstore/test/browser_scrollPositions.js:test_scroll:53
[task 2019-11-13T21:46:26.798Z] 21:46:26 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1069
[task 2019-11-13T21:46:26.798Z] 21:46:26 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1104
[task 2019-11-13T21:46:26.799Z] 21:46:26 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:932
[task 2019-11-13T21:46:26.799Z] 21:46:26 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:805
[task 2019-11-13T21:46:26.800Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: currentRemoteType (webIsolated=http://example.com) preferredRemoteType: webIsolated=http://example.com
[task 2019-11-13T21:46:26.800Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: webIsolated=http://example.com, webIsolated=http://example.com, false
[task 2019-11-13T21:46:26.801Z] 21:46:26 INFO - Console message: SessionStore: [process-switch]: type (webIsolated=http://example.com) is compatible - ignoring
[task 2019-11-13T21:46:26.801Z] 21:46:26 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | force-reload resets scroll positions -
[task 2019-11-13T21:46:28.412Z] 21:46:28 INFO - TEST-PASS | browser/components/sessionstore/test/browser_scrollPositions.js | no scroll stored -
[task 2019-11-13T21:46:28.413Z] 21:46:28 INFO - Leaving test bound test_scroll

Summary: Intermittent fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"} → Perma Tier 2 fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"}

Tentatively moving all bugs whose summaries mention "Fission" (or other Fission-related keywords) but are not assigned to a Fission Milestone to the "?" triage milestone.

This will generate a lot of bugmail, so you can filter your bugmail for the following UUID and delete them en masse:

0ee3c76a-bc79-4eb2-8d12-05dc0b68e732

Fission Milestone: --- → ?
Summary: Perma Tier 2 fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"110,215"} → Perma Tier 2 fission browser/components/sessionstore/test/browser_scrollPositions.js | reloading retains scroll positions - Got null, expected {"scroll":"X,Y"}
Fission Milestone: ? → M4.1

I cannot reproduce this problem on my local side.
However as comment 12 said, it is a permafailing on try server(linux-64-debug build with fission-enabled).

After investigation, I found that the problem is not caused by session restore.

When "browser.reload()", the scrollposition is reset and never restore.
https://searchfox.org/mozilla-central/rev/42c2ecdc429115c32e6bcb78bf087a228a051044/browser/components/sessionstore/test/browser_scrollPositions.js#51

In normal case, the scroll position is restored by ScrollFrameHelper::ScrollToRestoredPosition().
https://searchfox.org/mozilla-central/rev/42c2ecdc429115c32e6bcb78bf087a228a051044/layout/generic/nsGfxScrollFrame.cpp#4618

In this failed case, I also see that "ScrollFrameHelper::ScrollToRestoredPosition()" is being called.
But in the end, the scroll position doesn't change. We still collect position (0,0) from sessionStore.

Botond, can you look into this please?

Flags: needinfo?(botond)

I can try!

Assignee: nobody → botond
Flags: needinfo?(botond)

Hmm -- so I pushed to Try to see this test fail, but it's actually passing now: https://treeherder.mozilla.org/#/jobs?repo=try&revision=d66d93dabbfc566056e6f097251c451243466582

I checked that it's actually running (not disabled for Fission, or anything like that), and retriggered in 10 times on both opt and debug, and it's all passing.

I guess this has been fixed by another change since the time of filing?

I'm going to resolve this as WORKSFORME as it looks like the issue has been fixed, or at most it's a very infrequent intermittent.

Status: NEW → RESOLVED
Closed: 1 year ago
Flags: needinfo?(kmaglione+bmo)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.