Closed Bug 1238534 Opened 8 years ago Closed 8 years ago

Assertion failure: IsAncestor(aClip1, aClip2) || IsAncestor(aClip2, aClip1) (one of the scroll clips must be an ancestor of the other)

Categories

(Core :: Graphics: Layers, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
firefox46 --- affected

People

(Reporter: cbook, Assigned: mstange)

References

()

Details

(Keywords: assertion, Whiteboard: [gfx-noted])

Attachments

(1 file)

Attached file bughunter crash stack
found via bughunter on http://themes.goodlayers.com/thekeynote/ :

Assertion failure: IsAncestor(aClip1, aClip2) || IsAncestor(aClip2, aClip1) (one of the scroll clips must be an ancestor of the other)

i personally was not able to reproduce on a windows 7 vm trunk debug build based on mc-tip but i got on that page:

[4392] WARNING: '!temp', file c:/Users/mozilla/debug-build/mozilla-central/gfx/layers/basic/BasicCompositor.cpp, line 481
[GFX3-]: Surface width or height <= 0!
[GFX3-]: Surface width or height <= 0!
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: Failed to allocate a surface due to invalid size (DSS) Size(0,0) (t=362.536)|[7941][GFX1-]: Failed to allocate a surf
ace due to invalid size (DSS) Size(0,0) (t=27153.1)|[7937][GFX1-]: Failed to allocate a surface due to invalid size (DSS) Size(0,0) (t=27146.7)|[7938][GFX1-]: Failed to a
llocate a surface due to invalid size (DSS) Size(0,0) (t=27148.1)|[7939][GFX1-]: Failed to allocate a surface due to invalid size (DSS) Size(0,0) (t=27148.7)|[7940][GFX1-
]: Failed to allocate a surface due to invalid size (DSS) Size(0,0) (t=27149.8)[GFX1-]: Failed to allocate a surface due to invalid size (DSS) Size(0,0)
[4392] WARNING: '!temp', file c:/Users/mozilla/debug-build/mozilla-central/gfx/layers/basic/BasicCompositor.cpp, line 481
I am not sure that the IsAncestor assertion and !temp are related. We haven't figured out the !temp assertion in BasicCompositor but we see it in various situations. There's bug 1065013. All of the logging about zero-sized surfaces always happens together with the !temp assertion.
Component: GFX: Color Management → Graphics: Layers
Depends on: 1244873
I can reproduce this fairly consistently on http://mrdoob.com/lab/javascript/threejs/css3d/

aClip1 is created by the root scrollframe of an iframe in the page, created by a call to InsertInactiveScrollClipForContentDescendants in ScrollFrameHelper.

aClip2 is the root scrollframe of the root content document, created by a call to TurnClipIntoScrollClipForContentDescendants in ScrollFrameHelper.

Both clips have no parent clip, nor a cross-stacking context parent which is why the assertion fails.

The frame that created the outer clip is still on the stack when we create the inner one, so I have no idea how we end up with no ancestors for the inner one.

I've confirmed that both are created on the same DisplayListClipState.
Matt, is it possible coming from nsDisplayListBuilder::MarkFramesForDisplayList()?
Flags: needinfo?(matt.woodrow)
Flags: needinfo?(matt.woodrow)
(In reply to Matt Woodrow (:mattwoodrow) from comment #2)
> The frame that created the outer clip is still on the stack when we create
> the inner one, so I have no idea how we end up with no ancestors for the
> inner one.

If the inner one is out-of-flow in some way, then the ancestor scroll clip will be the one that nsDisplayListBuilder::MarkOutOfFlowFrameForDisplay stored for it, as Thinker said.
But in the testcase I only see position:absolute, no position:fixed. So I'd expect the stored ancestor scroll clip to be the one created for the root scrollframe.

Has http://mrdoob.com/lab/javascript/threejs/css3d/ tripped this assertion ever since bug 1147673, or is it a regression from the recent 3d transform changes?
I think the patches in bug 1238564 fix this.
Assignee: nobody → mstange
Depends on: 1238564
(In reply to Markus Stange [:mstange] from comment #5)
> I think the patches in bug 1238564 fix this.

yeah seems so, closing as wfm, thanks markus
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: