stylo: Crash in core::result::unwrap_failed<T> | style::custom_properties::substitute_one

NEW
Unassigned

Status

()

defect
P3
critical
2 years ago
a year ago

People

(Reporter: philipp, Unassigned)

Tracking

({crash, regression})

57 Branch
All
Windows
Points:
---

Firefox Tracking Flags

(firefox-esr52 unaffected, firefox56 unaffected, firefox57 wontfix, firefox58 wontfix, firefox59 ?)

Details

(Whiteboard: [MemShrink:P2], crash signature)

(Reporter)

Description

2 years ago
This bug was filed from the Socorro interface and is 
report bp-6332a495-3d0b-455a-bdb3-7ef8d0171007.
=============================================================
Crashing Thread (27)
Frame 	Module 	Signature 	Source
0 	xul.dll 	std::panicking::rust_panic_with_hook 	src/libstd/panicking.rs:555
1 	xul.dll 	std::panicking::begin_panic<collections::string::String> 	src/libstd/panicking.rs:511
2 	xul.dll 	std::panicking::begin_panic_fmt 	src/libstd/panicking.rs:495
3 	xul.dll 	core::panicking::panic_fmt 	src/libcore/panicking.rs:61
4 	xul.dll 	core::result::unwrap_failed<hashglobe::FailedAllocationError> 	src/libcore/macros.rs:29
5 	xul.dll 	style::custom_properties::substitute_one 	servo/components/style/custom_properties.rs:647
6 	xul.dll 	style::custom_properties::finish_cascade 	servo/components/style/custom_properties.rs:509
7 	xul.dll 	style::properties::cascade 	toolkit/library/i686-pc-windows-msvc/release/build/style-c3971230dbaa651c/out/properties.rs:142720
8 	xul.dll 	style::style_resolver::StyleResolverForElement<style::gecko::wrapper::GeckoElement>::cascade_style<style::gecko::wrapper::GeckoElement> 	servo/components/style/style_resolver.rs:586
9 	xul.dll 	style::style_resolver::StyleResolverForElement<style::gecko::wrapper::GeckoElement>::cascade_style_and_visited<style::gecko::wrapper::GeckoElement> 	servo/components/style/style_resolver.rs:309
10 	xul.dll 	style::style_resolver::StyleResolverForElement<style::gecko::wrapper::GeckoElement>::cascade_primary_style<style::gecko::wrapper::GeckoElement> 	servo/components/style/style_resolver.rs:214
11 	xul.dll 	style::style_resolver::{{impl}}::cascade_styles_with_default_parents::{{closure}}<style::gecko::wrapper::GeckoElement> 	servo/components/style/style_resolver.rs:326
12 	xul.dll 	style::style_resolver::StyleResolverForElement<style::gecko::wrapper::GeckoElement>::cascade_styles_with_default_parents<style::gecko::wrapper::GeckoElement> 	servo/components/style/style_resolver.rs:325
13 	xul.dll 	style::traversal::compute_style<style::gecko::wrapper::GeckoElement> 	servo/components/style/traversal.rs:723
14 	xul.dll 	rayon_core::job::{{impl}}::execute<closure> 	third_party/rust/rayon-core/src/job.rs:139
15 	xul.dll 	rayon_core::registry::WorkerThread::wait_until<rayon_core::latch::CountLatch> 	third_party/rust/rayon-core/src/registry.rs:433
16 	xul.dll 	std::sys_common::backtrace::__rust_begin_short_backtrace<closure, ()> 	src/libstd/sys_common/backtrace.rs:133
17 	xul.dll 	alloc::boxed::{{impl}}::call_box<(), closure> 	src/liballoc/boxed.rs:647
18 	xul.dll 	std::sys::imp::thread::{{impl}}::new::thread_start 	src/libstd/sys/windows/thread.rs:50
19 	kernel32.dll 	BaseThreadInitThunk 	
20 	mozglue.dll 	patched_BaseThreadInitThunk 	mozglue/build/WindowsDllBlocklist.cpp:824
21 	ntdll.dll 	__RtlUserThreadStart 	
22 	ntdll.dll 	_RtlUserThreadStart

this crash signature is regressing in 57 with stylo on windows. all reports show moz crash reason "called `Result::unwrap()` on an `Err` value: FailedAllocationError { reason: "out of memory when allocating RawTable" }"...
Priority: -- → P2
So this is basically a OOM.

The memory usage in those reports does seem high.

This could be a OOM large, so we may be able to do fallible pre-allocation in substitute_one and return Err(()) when it fails. But I'm not sure how much it would help.
Also, it would be great if someone can look into those reports and see if there is any common website involves.

If youtube shows a lot, it may also be related to bug 1405411.
Flags: needinfo?(bmo)
(In reply to Xidorn Quan [:xidorn] UTC+10 from comment #2)
> Also, it would be great if someone can look into those reports and see if
> there is any common website involves.
> 
> If youtube shows a lot, it may also be related to bug 1405411.

Yes, it does. Roughly half of the 149 crash reports from Beta 57.0b have URLs and all but two are youtube.com URLs.
OOM crash, and the likely fix here will be the optimizations landing in bug 1405411. Let's see if we need more memory shrinkage after that lands.
Flags: needinfo?(bmo)
Priority: P2 → P3
Whiteboard: [memshrink]
(In reply to Jet Villegas (:jet) from comment #4)
> OOM crash, and the likely fix here will be the optimizations landing in bug
> 1405411. Let's see if we need more memory shrinkage after that lands.

Did we see any changes?
Flags: needinfo?(bugs)

Updated

2 years ago
Whiteboard: [memshrink] → [MemShrink:P2]
(In reply to Eric Rahm [:erahm] (please no mozreview requests) from comment #5)
> (In reply to Jet Villegas (:jet) from comment #4)
> > OOM crash, and the likely fix here will be the optimizations landing in bug
> > 1405411. Let's see if we need more memory shrinkage after that lands.
> 
> Did we see any changes?

Yes, we've seen a significant reduction in crashes with this signature after bug 1407522 landed on 2017-10-13:

https://crash-stats.mozilla.com/signature/?signature=core%3A%3Aresult%3A%3Aunwrap_failed%3CT%3E%20%7C%20style%3A%3Acustom_properties%3A%3Asubstitute_one&date=%3E%3D2017-08-06T12%3A36%3A47.000Z&date=%3C2017-11-06T11%3A36%3A47.000Z#graphs
Flags: needinfo?(bugs)
You need to log in before you can comment on or make changes to this bug.