Closed Bug 501139 Opened 16 years ago Closed 4 years ago

Hang [@ nsSplittableFrame::IsInPrevContinuationChain] with moz-column-count and moz-box-sizing: border-box

Categories

(Core :: Layout, defect)

defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: martijn.martijn, Unassigned)

Details

(Keywords: hang, testcase, Whiteboard: multicol)

Attachments

(1 file, 1 obsolete file)

171 bytes, text/html
Details
Attached file testcase (obsolete) —
See testcase, which hangs in current trunk build. Stacktrace of the hang in a debug build: > gklayout.dll!nsSplittableFrame::IsInPrevContinuationChain(nsIFrame * aFrame1=0x0bd209bc, nsIFrame * aFrame2=0x0bd64954) Line 137 + 0xe bytes C++ gklayout.dll!nsSplittableFrame::SetPrevInFlow(nsIFrame * aFrame=0x0bd64874) Line 161 + 0xd bytes C++ gklayout.dll!nsSplittableFrame::Init(nsIContent * aContent=0x0bc43e58, nsIFrame * aParent=0x0bd648f8, nsIFrame * aPrevInFlow=0x0bd64874) Line 58 C++ gklayout.dll!nsContainerFrame::Init(nsIContent * aContent=0x0bc43e58, nsIFrame * aParent=0x0bd648f8, nsIFrame * aPrevInFlow=0x0bd64874) Line 92 + 0x15 bytes C++ gklayout.dll!nsBlockFrame::Init(nsIContent * aContent=0x0bc43e58, nsIFrame * aParent=0x0bd648f8, nsIFrame * aPrevInFlow=0x0bd64874) Line 6463 + 0x15 bytes C++ gklayout.dll!nsCSSFrameConstructor::CreateContinuingFrame(nsPresContext * aPresContext=0x0bc167a8, nsIFrame * aFrame=0x0bd64874, nsIFrame * aParentFrame=0x0bd648f8, nsIFrame * * aContinuingFrame=0x0012d568, int aIsFluid=1) Line 8033 C++ gklayout.dll!nsHTMLContainerFrame::CreateNextInFlow(nsPresContext * aPresContext=0x0bc167a8, nsIFrame * aOuterFrame=0x0bd648f8, nsIFrame * aFrame=0x0bd64874, nsIFrame * & aNextInFlowResult=0x00000000) Line 496 + 0x28 bytes C++ gklayout.dll!nsBlockFrame::CreateContinuationFor(nsBlockReflowState & aState={...}, nsLineBox * aLine=0x00000000, nsIFrame * aFrame=0x0bd64874, int & aMadeNewFrame=0) Line 3879 + 0x18 bytes C++ gklayout.dll!nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & aState={...}, nsLineList_iterator aLine={...}, int * aKeepReflowGoing=0x0012dbc4) Line 3173 + 0x2a bytes C++ gklayout.dll!nsBlockFrame::ReflowLine(nsBlockReflowState & aState={...}, nsLineList_iterator aLine={...}, int * aKeepReflowGoing=0x0012dbc4) Line 2367 + 0x1b bytes C++ gklayout.dll!nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & aState={...}) Line 1919 + 0x1b bytes C++ gklayout.dll!nsBlockFrame::Reflow(nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aMetrics={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=6) Line 958 + 0xf bytes C++ gklayout.dll!nsContainerFrame::ReflowChild(nsIFrame * aKidFrame=0x0bd648f8, nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, int aX=318918600, int aY=0, unsigned int aFlags=0, unsigned int & aStatus=6, nsOverflowContinuationTracker * aTracker=0x00000000) Line 825 + 0x21 bytes C++ gklayout.dll!nsColumnSetFrame::ReflowChildren(nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=6, const nsColumnSetFrame::ReflowConfig & aConfig={...}, int aUnboundedLastColumn=0, nsCollapsingMargin * aBottomMarginCarriedOut=0x0012e2d0, nsColumnSetFrame::ColumnBalanceData & aColData={...}) Line 671 C++ gklayout.dll!nsColumnSetFrame::Reflow(nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=6) Line 926 + 0x24 bytes C++ gklayout.dll!nsBlockReflowContext::ReflowBlock(const nsRect & aSpace={...}, int aApplyTopMargin=1, nsCollapsingMargin & aPrevMargin={...}, int aClearance=0, int aIsAdjacentWithTop=1, nsLineBox * aLine=0x0bc42c44, nsHTMLReflowState & aFrameRS={...}, unsigned int & aFrameReflowStatus=6, nsBlockReflowState & aState={...}) Line 310 + 0x2c bytes C++ gklayout.dll!nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & aState={...}, nsLineList_iterator aLine={...}, int * aKeepReflowGoing=0x0012e9a0) Line 3095 + 0x48 bytes C++ gklayout.dll!nsBlockFrame::ReflowLine(nsBlockReflowState & aState={...}, nsLineList_iterator aLine={...}, int * aKeepReflowGoing=0x0012e9a0) Line 2367 + 0x1b bytes C++ gklayout.dll!nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & aState={...}) Line 1919 + 0x1b bytes C++ gklayout.dll!nsBlockFrame::Reflow(nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aMetrics={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0) Line 958 + 0xf bytes C++ gklayout.dll!nsContainerFrame::ReflowChild(nsIFrame * aKidFrame=0x0bc41624, nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, int aX=0, int aY=0, unsigned int aFlags=0, unsigned int & aStatus=0, nsOverflowContinuationTracker * aTracker=0x00000000) Line 825 + 0x21 bytes C++ gklayout.dll!CanvasFrame::Reflow(nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0) Line 658 C++ gklayout.dll!nsContainerFrame::ReflowChild(nsIFrame * aKidFrame=0x0bc1340c, nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, int aX=0, int aY=0, unsigned int aFlags=3, unsigned int & aStatus=0, nsOverflowContinuationTracker * aTracker=0x00000000) Line 825 + 0x21 bytes C++ gklayout.dll!nsHTMLScrollFrame::ReflowScrolledFrame(ScrollReflowState * aState=0x0012f284, int aAssumeHScroll=0, int aAssumeVScroll=1, nsHTMLReflowMetrics * aMetrics=0x0012f1e0, int aFirstPass=1) Line 528 + 0x30 bytes C++ gklayout.dll!nsHTMLScrollFrame::ReflowContents(ScrollReflowState * aState=0x0012f284, const nsHTMLReflowMetrics & aDesiredSize={...}) Line 622 + 0x35 bytes C++ gklayout.dll!nsHTMLScrollFrame::Reflow(nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0) Line 823 + 0x13 bytes C++ gklayout.dll!nsContainerFrame::ReflowChild(nsIFrame * aKidFrame=0x0bc3dcd4, nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, int aX=0, int aY=0, unsigned int aFlags=0, unsigned int & aStatus=0, nsOverflowContinuationTracker * aTracker=0x00000000) Line 825 + 0x21 bytes C++ gklayout.dll!ViewportFrame::Reflow(nsPresContext * aPresContext=0x0bc167a8, nsHTMLReflowMetrics & aDesiredSize={...}, const nsHTMLReflowState & aReflowState={...}, unsigned int & aStatus=0) Line 281 + 0x2d bytes C++ gklayout.dll!PresShell::DoReflow(nsIFrame * target=0x0bc13328, int aInterruptible=1) Line 7050 C++ gklayout.dll!PresShell::ProcessReflowCommands(int aInterruptible=1) Line 7170 + 0x10 bytes C++ gklayout.dll!PresShell::FlushPendingNotifications(mozFlushType aType=Flush_InterruptibleLayout) Line 4812 + 0x12 bytes C++ gklayout.dll!PresShell::ReflowEvent::Run() Line 6872 C++ xpcom_core.dll!nsThread::ProcessNextEvent(int mayWait=1, int * result=0x0012f840) Line 516 + 0x19 bytes C++ xpcom_core.dll!NS_ProcessNextEvent_P(nsIThread * thread=0x010c4500, int mayWait=1) Line 230 + 0x16 bytes C++ gkwidget.dll!nsBaseAppShell::Run() Line 170 + 0xc bytes C++ tkitcmps.dll!nsAppStartup::Run() Line 193 + 0x1c bytes C++ xul.dll!XRE_main(int argc=1, char * * argv=0x010c08e8, const nsXREAppData * aAppData=0x010c0ea0) Line 3369 + 0x25 bytes C++ firefox.exe!NS_internal_main(int argc=1, char * * argv=0x010c08e8) Line 156 + 0x12 bytes C++ firefox.exe!wmain(int argc=1, unsigned short * * argv=0x0109a8f0) Line 110 + 0xd bytes C++ firefox.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C firefox.exe!wmainCRTStartup() Line 403 C kernel32.dll!_BaseProcessStart@4() + 0x23 bytes
Whiteboard: multicol
Still hangs in a recent trunk build. In column reflow, at first glance.
OS: Windows XP → All
Hardware: x86 → All
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---

Marking this as Resolved > Worksforme since the test case doesn't crash any of the latest versions of Firefox Nightly 91.0a1 (2021-06-18), Beta 90.0b9 or Release 89.0.1 on Windows 10.

Status: REOPENED → RESOLVED
Closed: 8 years ago4 years ago
Resolution: --- → WORKSFORME
Attached file testcase

Here's an updated testcase which drops the -moz- prefix on the property names in the original testcase.

Attachment #385760 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: