Closed Bug 1653649 Opened 1 year ago Closed 1 year ago

Crash in [@ webrender::render_task::render_task_sanity_check]


(Core :: Graphics: WebRender, defect, P3)

Windows 10



84 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox80 --- wontfix
firefox82 --- wontfix
firefox83 --- wontfix
firefox84 --- fixed


(Reporter: kashav, Assigned: nical)


(Blocks 1 open bug)


(Keywords: crash)

Crash Data


(2 files)

This bug is for crash report bp-95a82e4c-e3a7-4a22-9a22-8b7120200717.

Top 10 frames of crashing thread:

0 xul.dll RustMozCrash mozglue/static/rust/wrappers.cpp:16
1 xul.dll mozglue_static::panic_hook mozglue/static/rust/
2 xul.dll core::ops::function::Fn::call<fn ../4fb7144ed159f94491249e86d5bbd033b5d60550/src/libcore/ops/
3 xul.dll std::panicking::rust_panic_with_hook ../4fb7144ed159f94491249e86d5bbd033b5d60550//src/libstd/
4 xul.dll std::panicking::begin_panic<str*> ../4fb7144ed159f94491249e86d5bbd033b5d60550/src/libstd/
5 xul.dll webrender::render_task::render_task_sanity_check gfx/wr/webrender/src/
6 xul.dll static webrender::render_task::RenderTask::new_picture gfx/wr/webrender/src/
7 xul.dll webrender::frame_builder::FrameBuilder::build gfx/wr/webrender/src/
8 xul.dll webrender::render_backend::Document::build_frame gfx/wr/webrender/src/
9 xul.dll webrender::render_backend::RenderBackend::update_document gfx/wr/webrender/src/

Started in build 20200716212737. Regression window:

Pretty high volume, but only 2 installations across 2 builds, so it might be a single device.

The graphics critical errors are things like:
|[G0][GFX1-]: Attempting to create a render task of size 39414x11 (t=339.771)
|[G0][GFX1-]: Attempting to create a render task of size 19702x11 (t=34212.6)

Nical, Kats - any suggestions for this one?

Flags: needinfo?(nical.bugzilla)
Flags: needinfo?(kats)
Blocks: wr-80
Severity: -- → S3
Priority: -- → P3

I'm not particularly familiar with what goes into determining render task sizes. Leaving this one for nical.

Flags: needinfo?(kats)

It indeed looks like all windows crashes are coming from the same device.

The backtrace looks suspiciously like the document main picture render task, like we are trying to create an enormous window. I wonder if we are getting some garbage widget size. We should get into a habit of validating things in the API more, it's harder to untangle when we hit an assert later in another thread.

Most of the crashes happened in about:newtab/about:blank/about:home.

It's not obvious to me that the clipping changes in bug 1647918 could have caused us to let an enormous picture render task to be created, but I could have missed something. Dzmitry can you confirm?

Flags: needinfo?(nical.bugzilla) → needinfo?(dmalyshau)

Better to catch these in the API than later on some other thread.

Assignee: nobody → nical.bugzilla
Keywords: leave-open
Pushed by
Add window size sanity check at the API level. r=kvark

The changes in bug 1647918 where making us handling the clipped out items earlier. So effectively they reduced the pipeline for some cases, not extended it. I don't see how they would affect this issue.

Flags: needinfo?(dmalyshau)

@nical: Could you see if your extra sanity check callstack is present in crash-stats?

Flags: needinfo?(nical.bugzilla)

There are a few crashes on android with unreasonable sizes in set_document_view:

There's also one crash on windows:

It's not a lot of crashes and the volume of the original signature has gone down before the patch landed, though, so it's hard to get definitive conclusions. The latest build ID with the original signature I could find is from 18/07/2020 which is a few days before this patch landed which would lean towards this indeed revolving around nonsensical window sizes.

Flags: needinfo?(nical.bugzilla)
No longer blocks: wr-80

There are some crashes in a recent Linux nightly with cras reasons like "Attempting to create a 36033x32778 window/document"


Crash Signature: [@ webrender::render_task::render_task_sanity_check] → [@ webrender::render_task::render_task_sanity_check] [@ webrender_api::api::window_size_sanity_check ]

@Nical: Looks like there are more reports coming in.

Flags: needinfo?(nical.bugzilla)
No longer blocks: wr-81
No longer blocks: gfx-82
No longer blocks: gfx-83
Pushed by
Limit widget size to 16k. r=jrmuizel
Closed: 1 year ago
Flags: needinfo?(nical.bugzilla)
Keywords: leave-open
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.