Closed Bug 1596494 Opened 4 years ago Closed 4 years ago

Intermittent GECKO(1719) | Assertion failure: IsRootContentDocumentCrossProcess(), at /builds/worker/workspace/build/src/layout/base/nsPresContext.h:391

Categories

(Core :: Layout, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox72 --- fixed

People

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

References

(Regression)

Details

(Keywords: intermittent-failure, regression)

Attachments

(1 file)

Filed by: dvarga [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=276217903&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/c1WX-tDXRXSXKcYD7b3Dcw/runs/0/artifacts/public/logs/live_backing.log


[task 2019-11-14T16:18:32.749Z] 16:18:32 INFO - TEST-START | dom/websocket/tests/test_webSocket_sandbox.html

[task 2019-11-14T16:18:33.662Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 9 (0x7ff23419cc00) [pid = 1966] [serial = 9] [outer = 0x7ff24dbf1a60]
[task 2019-11-14T16:18:33.724Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 10 (0x7ff2341a4800) [pid = 1966] [serial = 10] [outer = 0x7ff24dbf1a60]
[task 2019-11-14T16:18:33.739Z] 16:18:33     INFO - GECKO(1719) | ++DOCSHELL 0x7ff234178000 == 4 [pid = 1966] [id = {2c4d36f5-a245-404f-b6cc-a7bd8d9c0c4f}]
[task 2019-11-14T16:18:33.742Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 11 (0x7ff24dbf1c40) [pid = 1966] [serial = 11] [outer = (nil)]
[task 2019-11-14T16:18:33.742Z] 16:18:33     INFO - GECKO(1719) | [Child 1966, Main Thread] WARNING: '!topWindow', file /builds/worker/workspace/build/src/dom/html/HTMLIFrameElement.cpp, line 252
[task 2019-11-14T16:18:33.757Z] 16:18:33     INFO - GECKO(1719) | [Child 1966, Main Thread] WARNING: '!topWindow', file /builds/worker/workspace/build/src/dom/html/HTMLIFrameElement.cpp, line 252
[task 2019-11-14T16:18:33.758Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 12 (0x7ff232137400) [pid = 1966] [serial = 12] [outer = 0x7ff24dbf1c40]
[task 2019-11-14T16:18:33.774Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 13 (0x7ff232139400) [pid = 1966] [serial = 13] [outer = 0x7ff24dbf1c40]
[task 2019-11-14T16:18:33.789Z] 16:18:33     INFO - GECKO(1719) | [Child 1966, Main Thread] WARNING: 'aRv.Failed()', file /builds/worker/workspace/build/src/dom/websocket/WebSocket.cpp, line 1264
[task 2019-11-14T16:18:33.845Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 14 (0x7ff23213f400) [pid = 1966] [serial = 14] [outer = 0x7ff24dbf0f20]
[task 2019-11-14T16:18:33.861Z] 16:18:33     INFO - GECKO(1719) | ++DOCSHELL 0x7ff23417e000 == 5 [pid = 1966] [id = {45f8f48d-0a5b-428f-b8e7-bd933e16b901}]
[task 2019-11-14T16:18:33.862Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 15 (0x7ff23219f020) [pid = 1966] [serial = 15] [outer = (nil)]
[task 2019-11-14T16:18:33.863Z] 16:18:33     INFO - GECKO(1719) | [Child 1966, Main Thread] WARNING: '!topWindow', file /builds/worker/workspace/build/src/dom/html/HTMLIFrameElement.cpp, line 252
[task 2019-11-14T16:18:33.863Z] 16:18:33     INFO - GECKO(1719) | [Child 1966, Main Thread] WARNING: '!topWindow', file /builds/worker/workspace/build/src/dom/html/HTMLIFrameElement.cpp, line 252
[task 2019-11-14T16:18:33.865Z] 16:18:33     INFO - GECKO(1719) | ++DOMWINDOW == 16 (0x7ff232143000) [pid = 1966] [serial = 16] [outer = 0x7ff23219f020]
[task 2019-11-14T16:18:33.885Z] 16:18:33     INFO - GECKO(1719) | Assertion failure: IsRootContentDocumentCrossProcess(), at /builds/worker/workspace/build/src/layout/base/nsPresContext.h:391
[task 2019-11-14T16:18:56.590Z] 16:18:56     INFO - GECKO(1719) | #01: nsLayoutUtils::GetContentViewerSize(nsPresContext*, mozilla::gfx::IntSizeTyped<mozilla::LayoutDevicePixel>&) [layout/base/nsLayoutUtils.cpp:0]
[task 2019-11-14T16:18:56.590Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.590Z] 16:18:56     INFO - GECKO(1719) | #02: UpdateCompositionBoundsForRCDRSF(mozilla::gfx::RectTyped<mozilla::ParentLayerPixel, float>&, nsPresContext*, bool) [layout/base/nsLayoutUtils.cpp:8468]
[task 2019-11-14T16:18:56.591Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.595Z] 16:18:56     INFO - GECKO(1719) | #03: nsLayoutUtils::CalculateCompositionSizeForFrame(nsIFrame*, bool) [layout/base/nsLayoutUtils.cpp:8529]
[task 2019-11-14T16:18:56.595Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.595Z] 16:18:56     INFO - GECKO(1719) | #04: nsLayoutUtils::CalculateExpandedScrollableRect(nsIFrame*) [layout/base/nsLayoutUtils.cpp:8637]
[task 2019-11-14T16:18:56.595Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.596Z] 16:18:56     INFO - GECKO(1719) | #05: GetDisplayPortFromMarginsData(nsIContent*, mozilla::DisplayPortMarginsPropertyData*, float) [layout/base/nsLayoutUtils.cpp:813]
[task 2019-11-14T16:18:56.596Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.596Z] 16:18:56     INFO - GECKO(1719) | #06: GetDisplayPortImpl(nsIContent*, nsRect*, float, MaxSizeExceededBehaviour) [layout/base/nsLayoutUtils.cpp:0]
[task 2019-11-14T16:18:56.597Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.597Z] 16:18:56     INFO - GECKO(1719) | #07: nsLayoutUtils::GetDisplayPortForVisibilityTesting(nsIContent*, nsRect*, RelativeTo) [layout/base/nsLayoutUtils.cpp:1153]
[task 2019-11-14T16:18:56.597Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.598Z] 16:18:56     INFO - GECKO(1719) | #08: mozilla::PresShell::MarkFramesInSubtreeApproximatelyVisible(nsIFrame*, nsRect const&, bool) [layout/base/PresShell.cpp:5581]
[task 2019-11-14T16:18:56.598Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.599Z] 16:18:56     INFO - GECKO(1719) | #09: mozilla::PresShell::MarkFramesInSubtreeApproximatelyVisible(nsIFrame*, nsRect const&, bool) [layout/base/PresShell.cpp:0]
[task 2019-11-14T16:18:56.599Z] 16:18:56     INFO - 
[task 2019-11-14T16:18:56.599Z] 16:18:56     INFO - GECKO(1719) | #10: mozilla::PresShell::RebuildApproximateFrameVisibility(nsRect*, bool) [layout/base/PresShell.cpp:5646]

This looks like the dynamic toolbar stuff Hiro has been working on.

Flags: needinfo?(hikezoe.birchill)
Regressed by: 1586144
Keywords: regression

yep, I think we mis-use top root content document check in CalculateCompositionSizeForFrame().

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED
Flags: needinfo?(hikezoe.birchill)
Blocks: 1562505

Not sure how we get from frame #01 to the assert failure but this call to IsRootContentDocument seems like it should be IsRootContentDocumentCrossProcess

https://searchfox.org/mozilla-central/rev/cac340f10816707e91c46db6d285f80259420f07/layout/base/nsLayoutUtils.cpp#8512

(In reply to Timothy Nikkel (:tnikkel) from comment #3)

Not sure how we get from frame #01 to the assert failure

Me neither. I can't reproduce the assertion locally at all so far.

Oh I missed the assertion happened on mochitest-fission (I was just looking at Platform which was linux64-qr). Though I am still not able to reproduce the assertion, the test case in question actually has OOP iframes there, this is a test case that we need to take care of for fission.

I am going to simply replace IsRootContentDocument in nsLayoutUtils::CalculateCompositionSizeForFrame and IsRootContentDocument in nsLayoutUtils::ComputeScrollMetadata with IsRootContentDocumentCrossProcess.

There is another call site of UpdateCompositionBoundsForRCDRSF in nsLayoutUtils::CalculateRootCompositionSize, but it seems to me that it's not used in the case of the root? I am not sure, so I will defer the part to a later bug which should block bug 1562505.

Though there is another call site of UpdateCompositionBoundsForRCDRSF in
nsLayoutUtils::CalculateRootCompositionSize, it's not clear to me whether it is
necessary or not since we early return from the function in the case where
|aIsRootContentDocRootScrollFrame| argument is true. We will audit it later
in bug 1562505.

Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ff4ff0dd4da3
Call UpdateCompositionBoundsForRCDRSF only if we are in the top level content document. r=tnikkel
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
Regressions: 1697890
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: