Firefox Crash @ nsIFrame::BuildDisplayListForChild
Categories
(Core :: Web Painting, defect)
Tracking
()
People
(Reporter: chofmann, Unassigned)
References
Details
(Keywords: crash, Whiteboard: [mobile-crash])
Crash Data
Attachments
(1 file)
|
60.50 KB,
text/plain
|
Details |
| Reporter | ||
Comment 1•16 years ago
|
||
| Reporter | ||
Comment 2•16 years ago
|
||
Updated•16 years ago
|
| Reporter | ||
Comment 3•16 years ago
|
||
| Reporter | ||
Comment 4•16 years ago
|
||
Comment 5•16 years ago
|
||
Comment 7•15 years ago
|
||
| Assignee | ||
Updated•15 years ago
|
Updated•14 years ago
|
Updated•14 years ago
|
Comment 10•14 years ago
|
||
Updated•14 years ago
|
Comment 11•14 years ago
|
||
Comment 12•14 years ago
|
||
Comment 13•14 years ago
|
||
Comment 14•14 years ago
|
||
Comment 15•14 years ago
|
||
Comment 16•14 years ago
|
||
Comment 17•14 years ago
|
||
Comment 18•14 years ago
|
||
Comment 19•14 years ago
|
||
Comment 20•14 years ago
|
||
Comment 21•14 years ago
|
||
Comment 22•14 years ago
|
||
Comment 23•14 years ago
|
||
Comment 24•14 years ago
|
||
Comment 25•13 years ago
|
||
Updated•11 years ago
|
Updated•9 years ago
|
Comment 26•9 years ago
|
||
Comment 27•9 years ago
|
||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 28•4 years ago
|
||
The bug is linked to a topcrash signature, which matches the following criterion:
- Top 10 content process crashes on beta
For more information, please visit auto_nag documentation.
Updated•4 years ago
|
Comment 29•3 years ago
|
||
Based on the topcrash criteria, the crash signatures linked to this bug are not in the topcrash signatures anymore.
For more information, please visit auto_nag documentation.
Comment 30•3 years ago
|
||
Only 4 crashes that are newer than 105. Lowering severity.
Updated•3 years ago
|
Comment 31•26 days ago
|
||
Crash report: https://crash-stats.mozilla.org/report/index/b682789e-6ea0-4207-bb80-8b3c70260926
Crash Reason:
EXCEPTION_ACCESS_VIOLATION_READ at 0x0000000000000033
Top 10 frames:
0 xul.dll mozilla::DisplayListClipState::ClipContainingBlockDescendants(mozilla::nsDisplay... layout/painting/DisplayListClipState.cpp:79
1 xul.dll mozilla::ScrollContainerFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, ... layout/generic/ScrollContainerFrame.cpp:4122
2 xul.dll nsIFrame::BuildDisplayListForChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mo... layout/generic/nsIFrame.cpp:4678
3 xul.dll nsBlockFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, mozilla::nsDispla... layout/generic/nsBlockFrame.cpp:8653
4 xul.dll nsIFrame::BuildDisplayListForChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mo... layout/generic/nsIFrame.cpp:4678
5 xul.dll nsFlexContainerFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, mozilla::... layout/generic/nsFlexContainerFrame.cpp:3040
6 xul.dll nsIFrame::BuildDisplayListForChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mo... layout/generic/nsIFrame.cpp:4432
7 xul.dll mozilla::ScrollContainerFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, ... layout/generic/ScrollContainerFrame.cpp:4236
8 xul.dll nsIFrame::BuildDisplayListForChild(mozilla::nsDisplayListBuilder*, nsIFrame*, mo... layout/generic/nsIFrame.cpp:4663
9 xul.dll nsBlockFrame::BuildDisplayList(mozilla::nsDisplayListBuilder*, mozilla::nsDispla... layout/generic/nsBlockFrame.cpp:8653
Filed because this signature's crash volume spiked. 12 distinct installations hit this signature in the last 7 days (27 reports), against 2.42 expected from its own rate over the preceding 56 days -- 4.96x, normalised for the channel's daily installation count. This signature is not new: its first report is in build 20220912135840 (2022-09-12), 1474 days before this build.
Clouseau analysis (automated -- nothing below was checked by a human; a claim it could not ground is deliberately absent):
The content process crashes while building the display list, inside DisplayListClipState::InvalidateCurrentCombinedClipChain (inlined ActiveScrolledRoot::IsAncestor/Depth) at DisplayListClipState.cpp:79. It reads ActiveScrolledRoot field offset 0x30 through a pointer holding a tiny integer (fault addresses 0x32–0x3e). The nightly rise comes almost entirely from Intel Raptor Lake CPUs (family 6 model 183 stepping 1): 60 of 61 nightly reports in 60 days. 53 of those 61 carry microcode 0x11d, which predates the 0x12B update Intel shipped for this instability, and nearly all of them share one NVIDIA driver. All of the 09-20..09-23 surge carries that microcode, which points to one or a few degrading machines rather than a code change. There is no nightly software action. The long-standing release/ESR population of this signature is different: mixed CPUs and freed-memory/frame-poison addresses (0xe5e5…, 0x7ffffffff0de8…). If anything is investigated, it should be that population, as a possible use-after-free of a display-list ASR.
Possible path to the crash: Mechanism (observed): read mov edx, dword [rcx+0x30] with rcx = a small integer (0x3 in the representative report), i.e. ActiveScrolledRoot::Depth dereferencing an asr/parent pointer that is neither null nor a real address. Path (observed): ScrollContainerFrame::BuildDisplayList -> AutoSaveRestore::ClipContainingBlockDescendants -> DisplayListClipState::ClipContainingBlockDescendants -> InvalidateCurrentCombinedClipChain(asr) at line 79, with asr from aBuilder->CurrentActiveScrolledRoot(). Trigger (inferred, medium): the nightly spike reports come almost only from Raptor Lake CPUs, mostly on pre-fix microcode 0x11d with one GPU driver, so the likeliest source of the bogus pointer is CPU instability on one or a few machines. A software producer of small-integer ASR pointers cannot be excluded, but none was found and there is no non-Raptor-Lake nightly signal to support one.
Checked:
- Faulting statement is
InvalidateCurrentCombinedClipChain(asr), whereasr = aBuilder->CurrentActiveScrolledRoot(), inClipContainingBlockDescendants. (layout/painting/DisplayListClipState.cpp@4395e1fc5b2a:76-79) - Representative report: EXCEPTION_ACCESS_VIOLATION_READ at 0x33, instruction
mov edx, dword [rcx + 0x30], Raptor Lake 6/183/1. (brief, report b682789e-6ea0-4207-bb80-8b3c70260926) - Nightly, 60 days: 60 of 61 reports on family 6 model 183 stepping 1. (facets cpu_info, nightly, 60d)
- Nightly, 60 days: microcode 0x11d 53, 0x12b 6, other 2; adapter driver 32.0.16.1088 49, 32.0.15.6094 6. (facets cpu_microcode_version and adapter_driver_version, nightly, 60d)
- Every report on the surge days (09-20: 15, 09-21: 10, 09-22: 5, 09-23: 3) carries microcode 0x11d; the 09-24..09-26 tail is mostly 0x12b. (facets cpu_microcode_version by_day, nightly, 14d)
- Nightly fault addresses are mostly 0x32–0x3e (small integer base + 0x30), varying from report to report. (facets address, nightly, 60d)
- Across all channels only 41% (122/295) of reports are Raptor Lake, and the top addresses include jemalloc poison
0xe5e5e5e5e5e5e529and0x7ffffffff0de802f(46 reports). (facets cpu_info and address, all_channels, 60d) - The nightly surge is concentrated on one or a few machines (a single microcode+driver combination); the pipeline's 12 'installations' is likely inflated because nightly install_time changes with every update. [inferred, medium confidence] (facets cpu_microcode_version, adapter_driver_version, install_time (distinct values clustered 09-19..09-21), nightly)
Alternatives considered:
- Changesets in the 20260925214843 pushlog window (e.g. 1333eacacf6c/ce8aea5846c2 grid-lanes, a968723abc9b sticky, d211d31352eb flex stretch): disfavored -- the surge (09-20..09-23) predates this build and is tied to one microcode/driver combination; 158.0a1 was already at 3.5/1000.
- A software regression in 158.0a1 as the nightly cause: disfavored -- 98% of nightly reports are on one CPU model, mostly with a single microcode+driver, and no non-Raptor-Lake nightly cohort grew.
- Pipeline's hardware abstention: corroborated and refined -- it is also a concentration on pre-0x12B microcode on essentially one machine.
Worth checking first:
- Release/ESR cohort with poison addresses (
0xe5e5…,0x7ffffffff0de8…) on mixed CPUs: may be a real use-after-free of anActiveScrolledRootor clip chain across display-list rebuilds; read a few release reports with those addresses and check whether retained display lists orCurrentActiveScrolledRootoutlive their arena. - Whether the 0x12b-microcode tail (6 reports, driver 32.0.15.6094) is a second degraded machine or a software signal: watch whether it persists on 159 builds from CPUs other than Raptor Lake.
Filed automatically by Clouseau, which analyses nightly crashes with an LLM. Nothing above was written or checked by a human. Please close it as INVALID if it is wrong — that is useful feedback, not a nuisance.
This is not an independent Mozilla discovery: the crash is known here only because somebody submitted the crash report linked at the top. If this duplicates an existing report, please resolve THIS bug as the duplicate and leave the credit with the earlier reporter.
Posted here because mozilla::ActiveScrolledRoot::Depth is another spelling of this bug's signature @0x0 | nsIFrame::BuildDisplayListForChild (frame mozilla::ActiveScrolledRoot::Depth replaced @0x0, nsIFrame::BuildDisplayListForChild); [@ mozilla::ActiveScrolledRoot::Depth] has been added to its crash signatures.
Updated•26 days ago
|
Comment 32•26 days ago
|
||
I don't think we should add the signature ActiveScrolledRoot::Depth to this bug, that's already covered by bug 1840362 and will just makes things more confusing here.
(In reply to Clouseau (:calixte) from comment #31)
The nightly rise comes almost entirely from Intel Raptor Lake CPUs (family 6 model 183 stepping 1): 60 of 61 nightly reports in 60 days.
This seems to be the summary of the new information.
Description
•