Closed Bug 591304 Opened 14 years ago Closed 10 years ago

Hang/crash [@ gfxFont::Measure][@ nsRegion::Or] with filter, position:fixed and float

Categories

(Core :: Layout, defect)

x86
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME
Tracking Status
blocking2.0 --- -

People

(Reporter: martijn.martijn, Unassigned)

References

Details

(Keywords: crash, regression, testcase)

Crash Data

Attachments

(1 file)

Attached file testcase (deleted) —
See testcase, which crashes current trunk build after 200ms, after hanging for a while.

This seems to have regressed between 2010-08-13 and 2010-08-14:
http://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2010-08-13+04%3A00%3A00&enddate=2010-08-14+06%3A00%3A00

http://crash-stats.mozilla.com/report/index/41309ac7-0b76-4979-a8ed-8df702100827
0  	xul.dll  	gfxFont::Measure  	 gfx/thebes/gfxFont.cpp:1220
1 	xul.dll 	gfxTextRun::MeasureText 	gfx/thebes/gfxFont.cpp:3406
2 	xul.dll 	gfxTextRun::BreakAndMeasureText 	gfx/thebes/gfxFont.cpp:3564
3 	xul.dll 	nsTextFrame::Reflow 	layout/generic/nsTextFrameThebes.cpp:6434
4 	xul.dll 	nsLineLayout::ReflowFrame 	layout/generic/nsLineLayout.cpp:835
5 	xul.dll 	nsBlockFrame::ReflowInlineFrame 	layout/generic/nsBlockFrame.cpp:3750
6 	xul.dll 	nsBlockFrame::DoReflowInlineFrames 	layout/generic/nsBlockFrame.cpp:3546
7 	xul.dll 	nsBlockFrame::ReflowInlineFrames 	layout/generic/nsBlockFrame.cpp:3405
8 	xul.dll 	nsBlockFrame::ReflowLine 	layout/generic/nsBlockFrame.cpp:2493
9 	xul.dll 	nsBlockFrame::ReflowDirtyLines 	layout/generic/nsBlockFrame.cpp:1931
10 	xul.dll 	nsBlockFrame::Reflow 	layout/generic/nsBlockFrame.cpp:1021
11 	xul.dll 	nsContainerFrame::ReflowChild 	layout/generic/nsContainerFrame.cpp:738
12 	xul.dll 	nsColumnSetFrame::ReflowChildren 	layout/generic/nsColumnSetFrame.cpp:670
13 	xul.dll 	nsColumnSetFrame::Reflow 	layout/generic/nsColumnSetFrame.cpp:1032
14 	xul.dll 	nsAbsoluteContainingBlock::ReflowAbsoluteFrame 	layout/generic/nsAbsoluteContainingBlock.cpp:450
15 	xul.dll 	nsAbsoluteContainingBlock::Reflow 	layout/generic/nsAbsoluteContainingBlock.cpp:160
16 	xul.dll 	ViewportFrame::Reflow 	layout/generic/nsViewportFrame.cpp:329
17 	xul.dll 	PresShell::DoReflow 	layout/base/nsPresShell.cpp:7546
18 	xul.dll 	PresShell::ProcessReflowCommands 	layout/base/nsPresShell.cpp:7681
19 	xul.dll 	PresShell::FlushPendingNotifications 	layout/base/nsPresShell.cpp:4812
etc...
Looks like an infinite recursion with this basic unit:

PresShell::ProcessReflowCommands        layout/base/nsPresShell.cpp:7693
PresShell::FlushPendingNotifications    layout/base/nsPresShell.cpp:4812
PresShell::HandlePostedReflowCallbacks  layout/base/nsPresShell.cpp:4679
PresShell::DidDoReflow                  layout/base/nsPresShell.cpp:7423
PresShell::ProcessReflowCommands        layout/base/nsPresShell.cpp:7693

ccing the people with patches in the range that are most likely to be relevant.

I'd be curious to find out what reflow callback this is.  Scrollframe?
blocking2.0: --- → ?
Crash Signature: [@ gfxFont::Measure]
It's now crashing swiftly on trunk and with a different stack:
https://crash-stats.mozilla.com/report/index/409c5423-51cd-4af2-80e4-28d092110907
0 	xul.dll 	nsRegion::Or 	gfx/src/nsRegion.cpp:782
1 	xul.dll 	nsRegion::Or 	gfx/src/nsRegion.cpp:798
2 	xul.dll 	nsViewManager::UpdateWidgetArea 	view/src/nsViewManager.cpp:515
3 	xul.dll 	nsIFrame::InvalidateInternal 	layout/generic/nsFrame.cpp:4348
4 	xul.dll 	nsIFrame::InvalidateInternal 	layout/generic/nsFrame.cpp:4348
5 	xul.dll 	nsIFrame::InvalidateInternal 	layout/generic/nsFrame.cpp:4348
6 	xul.dll 	nsIFrame::InvalidateInternal 	layout/generic/nsFrame.cpp:4348
7 	xul.dll 	nsIFrame::InvalidateInternal 	layout/generic/nsFrame.cpp:4348
Crash Signature: [@ gfxFont::Measure] → [@ gfxFont::Measure][@ nsRegion::Or]
Summary: Hang/crash [@ gfxFont::Measure] with filter, position:fixed and float → Hang/crash [@ gfxFont::Measure][@ nsRegion::Or] with filter, position:fixed and float
Still crashing, bug 618421 (top crash) is perhaps related?
I can still reproduce this with the testcase, but I don't get the crashreporter.
Crash Signature: [@ gfxFont::Measure][@ nsRegion::Or] → [@ gfxFont::Measure] [@ nsRegion::Or] [@ nsRegion::Or(nsRegion const&, nsRegion const&) ]
Regression window:
Not crash:
http://hg.mozilla.org/mozilla-central/rev/69e2e34ccddc
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100813 Minefield/4.0b4pre ID:20100813065209
Crash:
http://hg.mozilla.org/mozilla-central/rev/9fd11a17eb1a
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b4pre) Gecko/20100813 Minefield/4.0b4pre ID:20100813072506
Pushlog:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=69e2e34ccddc&tochange=9fd11a17eb1a
Last Good :8b129680a3bb
First Bad :4a50f3c34d5a
Blocks: 506826
This is worksforme in current trunk build.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: