Closed Bug 1906078 Opened 3 months ago Closed 3 months ago

Test case takes two minutes to load

Categories

(Core :: CSS Parsing and Computation, defect)

Firefox 129
x86_64
Linux
defect

Tracking

()

VERIFIED FIXED
130 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- verified
firefox127 --- wontfix
firefox128 --- wontfix
firefox129 --- verified
firefox130 --- verified

People

(Reporter: gregp, Assigned: emilio)

References

(Regression)

Details

(Keywords: regression)

Attachments

(3 files)

Attached file 1000x1000.html

Steps to reproduce:

  1. Navigate to the attached test case

Actual results:
Takes about 2 minutes to load

Expected results:
Takes about 4 seconds to load, like in older Firefox builds and Chromium

2023-06-07 profile: https://share.firefox.dev/4cNlOYm
2024-07-02 profile: https://share.firefox.dev/466RVAt

Got this regression range
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=2c8e99462d7dcbac2df0948cb9ab65d40d1d2fb7&tochange=256876c3862b6c4c8c51676f10d5ca440f86c0a8

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

:emilio, since you are the author of the regressor, bug 1835923, could you take a look? Also, could you set the severity field?

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)

Hmm, fun, it seems split-off can have poor performance in some cases / basically copying the whole list, which is what I was trying to avoid there.

Might be worth an upstream rust issue fwiw...

We can fix this by splitting off from the back instead.

Flags: needinfo?(emilio)
Assignee: nobody → emilio
Status: NEW → ASSIGNED
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9596795522df Avoid pathological VecDeque behavior on parallel traversal. r=dshin
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 130 Branch

:emilio do you want to add a beta and esr128 uplift request on this?

Flags: needinfo?(emilio)

Comment on attachment 9411159 [details]
Bug 1906078 - Avoid pathological VecDeque behavior on parallel traversal. r=#style

Beta/Release Uplift Approval Request

  • User impact if declined: Simple perf improvement, specially in pathological cases with lots of siblings.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: Load test-case.
  • List of other uplifts needed: none
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Trivial-ish change to very hot / well-covered code-path.
  • String changes made/needed: none
  • Is Android affected?: Yes

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: See above
  • User impact if declined: See above
  • Fix Landed on Version: 130
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): See above.
Flags: needinfo?(emilio)
Attachment #9411159 - Flags: approval-mozilla-esr128?
Attachment #9411159 - Flags: approval-mozilla-beta?
Flags: qe-verify+

Comment on attachment 9411159 [details]
Bug 1906078 - Avoid pathological VecDeque behavior on parallel traversal. r=#style

Approved for 129.0b2

Attachment #9411159 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
QA Whiteboard: [qa-triaged]

The said test case takes a long time to load/render in Nightly v128.0a1 (2024-06-07), Nightly v128.0a1 (2024-07-07) and Beta v129.0b1 and it is almost instantly loaded in Nightly v130.0a1 (2024-07-09). Beta v129.0b2 is not yet available; it will be verified in the coming days. This was verified on Windows 10, MacOS 11 and Ubuntu 22.

It is important to mention that the general browser performance is diminished when this test case is displayed in both affected and fixed builds, but I imagine this is an expected side-effect of the test case.

This fix has also been verified in Beta v129.0b2 on Windows 10, MacOS 11 and Ubuntu 22. The loading time is significantly reduced.

Status: RESOLVED → VERIFIED
Flags: qe-verify+

Comment on attachment 9411159 [details]
Bug 1906078 - Avoid pathological VecDeque behavior on parallel traversal. r=#style

Approved for 128.1esr.

Attachment #9411159 - Flags: approval-mozilla-esr128? → approval-mozilla-esr128+

Ok we didn't get a perf alert for this, so let's try to land a test.

Flags: needinfo?(emilio)
Flags: needinfo?(emilio)
Flags: qe-verify+

A patch has been attached on this bug, which was already closed. Filing a separate bug will ensure better tracking. If this was not by mistake and further action is needed, please alert the appropriate party. (Or: if the patch doesn't change behavior -- e.g. landing a test case, or fixing a typo -- then feel free to disregard this message)

This fix has also been verified in ESR v128.1.0esr on Windows 10 and MacOS 11. The loading time is significantly reduced.

Flags: qe-verify+
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6659230d6f56 Add a perf-reftest-singleton for this bug. r=perftest-reviewers,firefox-style-system-reviewers,sparky,zrhoffman
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: