Closed Bug 1927270 Opened 1 year ago Closed 11 months ago

Fuzz testcase from bug 1473612 loads indefinitely spending time around layout stuff (testcase loaded instantly prior to regression)

Categories

(Core :: Layout: Columns, defect)

defect

Tracking

()

RESOLVED FIXED
136 Branch
Tracking Status
firefox-esr128 --- wontfix
firefox134 --- wontfix
firefox135 --- wontfix
firefox136 --- fixed

People

(Reporter: mayankleoboy1, Assigned: TYLin)

References

(Regression, )

Details

(Keywords: regression)

Attachments

(2 files)

From the range in comment 0, bug 1784208 might also be a suspect; but if the range in comment 1 is more correct, then bug 793686 does sound plausible. Maybe :TYLin can take a look sometime.

Flags: needinfo?(aethanyc)

The browser is stuck in multi-column layout, which keeps creating columns. It can be easily seen when loading the testcase in my local debug build with multi-column log enabled:

MOZ_LOG="ColumnSet:5" ./mach run --layoutdebug https://bugzilla.mozilla.org/attachment.cgi?id=9433472

The testcase produces a lot of log prints, and I see the following within a few seconds:

D/ColumnSet ReflowColumns: Reflowed child #4165
...
D/ColumnSet ReflowColumns: Reflowed child #4166
...
D/ColumnSet ReflowColumns: Reflowed child #4166
...

This means the browser has created at least 4166 columns. It is a signal that it will likely never end.

Severity: -- → S3
See Also: → 1473612

Currently, only a maximum of two levels of nested "balancing" multicol are
allowed. In the third or deeper levels of a multicol container that uses the
balancing behavior (column-fill: balancing), we don't honor the balancing
request and make it act as if column-count: 1 is set, for performance reasons
[1].

In such scenarios, this patch sets the mForceAuto to true, allowing the
content to be laid out regardless of whether the multicol is at the top of the
page or not [2]. This prevents the indefinite creation of columns.

This change should have minimal impact on real sites, as nested multicol layouts
beyond two levels are rare.

WARNING: Opening the testcase in Firefox without this patch applied can hang the
browser.

[1] https://searchfox.org/mozilla-central/rev/ead020d3989d3e9477b353d3d117f9c0f4b16f53/layout/generic/nsColumnSetFrame.cpp#296-301
[2] https://searchfox.org/mozilla-central/rev/6b61714b224f8cdca1a48ef1c51edab027f2c09f/layout/generic/nsColumnSetFrame.cpp#650-654

Assignee: nobody → aethanyc
Status: NEW → ASSIGNED
Component: Layout: Block and Inline → Layout: Columns
Flags: needinfo?(aethanyc)
Keywords: regression
Regressed by: 793686

Set release status flags based on info from the regressing bug 793686

Pushed by aethanyc@gmail.com: https://hg.mozilla.org/integration/autoland/rev/c0d9ef2b735c Force fill columns if the current multicol's nested balancing depth exceeds the maximum. r=dshin
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/50010 for changes under testing/web-platform/tests
Duplicate of this bug: 1473612
See Also: 1473612
Status: ASSIGNED → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → 136 Branch
Upstream PR merged by moz-wptsync-bot

The patch landed in nightly and beta is affected.
:TYLin, is this bug important enough to require an uplift?

  • If yes, please nominate the patch for beta approval.
  • If no, please set status-firefox135 to wontfix.

For more information, please visit BugBot documentation.

Flags: needinfo?(aethanyc)

This bug is unlikely to occur on real websites, and we have this bug since Firefox 105. Therefore, I'm OK for this to ride the train.

Flags: in-testsuite+
Blocks: 1764205
Blocks: 1833523
Duplicate of this bug: 1833523
Blocks: 1870219
Blocks: 1473612
No longer duplicate of this bug: 1473612
No longer blocks: 1833523
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: