Closed Bug 1579585 Opened 1 year ago Closed 1 year ago

Crash in [@ OOM | large | mozalloc_abort | mozalloc_handle_oom | gkrust_shared::oom_hook::hook | std::alloc::rust_oom | std::collections::hash::map::HashMap<T>::try_resize<T> | std::collections::hash::set::HashSet<T>::insert<T>]

Categories

(Core :: CSS Parsing and Computation, defect, P3)

69 Branch
Unspecified
Windows 10
defect

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox-esr60 --- unaffected
firefox-esr68 --- wontfix
firefox67 --- wontfix
firefox68 --- wontfix
firefox69 --- wontfix
firefox70 --- fixed
firefox71 --- fixed

People

(Reporter: yoasif, Assigned: emilio)

Details

(Keywords: crash)

Crash Data

Attachments

(1 file)

This bug is for crash report bp-5a9746e4-1bd0-4175-9d0c-a5a880190906.

Top 10 frames of crashing thread:

0 mozglue.dll mozalloc_abort memory/mozalloc/mozalloc_abort.cpp:33
1 mozglue.dll mozalloc_handle_oom memory/mozalloc/mozalloc_oom.cpp:51
2 xul.dll void gkrust_shared::oom_hook::hook toolkit/library/rust/shared/lib.rs:267
3 xul.dll void std::alloc::rust_oom src/libstd/alloc.rs:211
4 xul.dll void alloc::alloc::handle_alloc_error src/liballoc/alloc.rs:227
5 xul.dll static union core::result::Result< src/libstd/collections/hash/map.rs:1118
6 xul.dll static bool std::collections::hash::set::HashSet<style::invalidation::stylesheets::Invalidation, core::hash::BuildHasherDefault<fxhash::FxHasher>>::insert<style::invalidation::stylesheets::Invalidation, core::hash::BuildHasherDefault<fxhash::FxHasher>> src/libstd/collections/hash/set.rs:681
7 xul.dll static void style::stylesheet_set::DocumentStylesheetSet<style::gecko::data::GeckoStyleSheet>::collect_invalidations_for<style::gecko::data::GeckoStyleSheet> servo/components/style/stylesheet_set.rs
8 xul.dll void geckoservo::glue::Servo_StyleSet_AppendStyleSheet servo/ports/geckolib/glue.rs:1466
9 xul.dll mozilla::ServoStyleSet::AppendStyleSheet layout/style/ServoStyleSet.cpp:572

Looks like an oom in style-related code.

Component: General → CSS Parsing and Computation

We can try to use fallible allocation here and invalidate the whole document otherwise, or something.

Flags: needinfo?(emilio)
Priority: -- → P3

If the sets get too big we cannot allocate anything else, we'll just empty them
and invalidate the whole document.

Flags: needinfo?(emilio)
Assignee: nobody → emilio
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b26a35cc0a17
Use fallible allocation for stylesheet invalidation. r=jwatt
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla71

Please nominate this for Beta approval when you get a chance.

Comment on attachment 9094685 [details]
Bug 1579585 - Use fallible allocation for stylesheet invalidation.

Beta/Release Uplift Approval Request

  • User impact if declined: Potential OOM crashes.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Change insertion to be fallible and invalidate the whole document, clearing the sets while at it.
  • String changes made/needed: none
Flags: needinfo?(emilio)
Attachment #9094685 - Flags: approval-mozilla-beta?

Comment on attachment 9094685 [details]
Bug 1579585 - Use fallible allocation for stylesheet invalidation.

Fix for OOM crashes, let's uplift for beta 11.

Attachment #9094685 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

This is low enough volume that I don't think we need to worry about it for ESR68.

You need to log in before you can comment on or make changes to this bug.