Crash in [@ webrender::screen_capture::AsyncScreenshotGrabber::get_screenshot] while profiling
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox84 | --- | wontfix |
firefox85 | --- | wontfix |
firefox86 | --- | fixed |
People
(Reporter: mccr8, Assigned: beth)
References
Details
(Keywords: crash)
Crash Data
Attachments
(1 file)
Crash report: https://crash-stats.mozilla.org/report/index/89088588-70fa-4ef8-9534-a24f10201216
MOZ_CRASH Reason: called `Option::unwrap()` on a `None` value
Top 10 frames of crashing thread:
0 libxul.so RustMozCrash mozglue/static/rust/wrappers.cpp:17
1 libxul.so mozglue_static::panic_hook mozglue/static/rust/lib.rs:89
2 libxul.so core::ops::function::Fn::call /builds/worker/fetches/rustc/lib/rustlib/src/rust/library/core/src/ops/function.rs:70
3 libxul.so std::panicking::rust_panic_with_hook library/std/src/panicking.rs:581
4 libxul.so std::panicking::begin_panic_handler::{{closure}} library/std/src/panicking.rs:484
5 libxul.so std::sys_common::backtrace::__rust_end_short_backtrace library/std/src/sys_common/backtrace.rs:153
6 libxul.so rust_begin_unwind library/std/src/panicking.rs:483
7 libxul.so core::panicking::panic_fmt library/core/src/panicking.rs:85
8 libxul.so core::panicking::panic library/core/src/panicking.rs:50
9 libxul.so webrender::screen_capture::AsyncScreenshotGrabber::get_screenshot gfx/wr/webrender/src/screen_capture.rs:121
user comments: " when trying to catch a performance profiles while webrender is on and scale is 125%" and "while profiling on firefox"
Comment 2•5 years ago
|
||
Better stack:
core::option::Option<T>::unwrap
/builds/worker/fetches/rustc/lib/rustlib/src/rust/library/core/src/option.rs:383
euclid::size::Size2D<T,U>::cast
/builds/worker/checkouts/gecko/third_party/rust/euclid/src/size.rs:285
euclid::size::Size2D<T,U>::to_i32
/builds/worker/checkouts/gecko/third_party/rust/euclid/src/size.rs:351
webrender::screen_capture::AsyncScreenshotGrabber::get_screenshot
/builds/worker/checkouts/gecko/gfx/wr/webrender/src/screen_capture.rs:121
So (window_rect.size.to_f32() * scale).round()
is not an integer.
Maybe there is divide by zero in the computation of scale? If window_rect
were zero-sized, this could happen.
Barret, could you take a look?
Assignee | ||
Comment 3•5 years ago
|
||
yeah it looks like we're dividing by zero here, ending up with infinity, and not being able to stuff that into an i32. We should probably bail before way before here if we are going to be recording a 0-sized window and maybe assert here that scale is not infinite.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 4•5 years ago
|
||
![]() |
||
Comment 6•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Description
•