Crash in [@ mozilla::wr::RenderCompositorD3D11SWGL::TileD3D11::Map]
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox-esr91 | 91+ | fixed |
firefox89 | --- | unaffected |
firefox90 | --- | unaffected |
firefox91 | + | fixed |
firefox92 | + | fixed |
People
(Reporter: mccr8, Assigned: aosmond)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: crash, regression, topcrash, Whiteboard: [not-a-fission-bug])
Crash Data
Attachments
(1 file)
48 bytes,
text/x-phabricator-request
|
jcristau
:
approval-mozilla-release+
jcristau
:
approval-mozilla-esr91+
|
Details | Review |
Maybe Fission related. (DOMFissionEnabled=1)
Crash report: https://crash-stats.mozilla.org/report/index/529fd197-c4f9-40d6-9647-4ee140210625
Reason: EXCEPTION_ACCESS_VIOLATION_WRITE
Top 10 frames of crashing thread:
0 xul.dll mozilla::wr::RenderCompositorD3D11SWGL::TileD3D11::Map gfx/webrender_bindings/RenderCompositorD3D11SWGL.cpp:314
1 xul.dll mozilla::wr::RenderCompositorLayersSWGL::MapTile gfx/webrender_bindings/RenderCompositorLayersSWGL.cpp:194
2 xul.dll mozilla::wr::wr_compositor_map_tile gfx/webrender_bindings/RenderCompositor.cpp:139
3 xul.dll webrender_bindings::bindings::{{impl}}::map_tile gfx/webrender_bindings/src/bindings.rs:1421
4 xul.dll webrender::compositor::sw_compositor::{{impl}}::bind gfx/wr/webrender/src/compositor/sw_compositor.rs:1261
5 xul.dll webrender::renderer::Renderer::draw_frame gfx/wr/webrender/src/renderer/mod.rs:4509
6 xul.dll webrender::renderer::Renderer::render_impl gfx/wr/webrender/src/renderer/mod.rs:1955
7 xul.dll webrender::renderer::Renderer::render gfx/wr/webrender/src/renderer/mod.rs:1701
8 xul.dll webrender_bindings::bindings::wr_renderer_render gfx/webrender_bindings/src/bindings.rs:636
9 xul.dll mozilla::wr::RenderThread::UpdateAndRender gfx/webrender_bindings/RenderThread.cpp:485
Null derefs.
Looks like it first showed up in the 20210623095324 build. Looks like this line changed in bug 1717737, so maybe it is a regression from that, or just a signature change.
Comment 1•3 years ago
|
||
Some of this is going to be signature shift from bug 1717519 and some legitimate problems detected by bug 1717966.
Comment 2•3 years ago
|
||
Bug 1718334 will help us figure out what's going on here.
Comment 3•3 years ago
|
||
Set release status flags based on info from the regressing bug 1717737
Comment 4•3 years ago
|
||
This doesn't look like a Fission crash even though the crash report in comment 0 has DOMFissionEnabled=1. Adding [not-a-fission-bug]
whiteboard tag to hide this bug from Fission bug triage queries.
Updated•3 years ago
|
Updated•3 years ago
|
Comment 5•3 years ago
|
||
The volume on both nightly and beta is worrying me, Jim can we get an assignee on this one? Thanks
Updated•3 years ago
|
Updated•3 years ago
|
Updated•3 years ago
|
Comment 6•3 years ago
|
||
It looks like a lot of these crashes are happening after a device reset. I expect our handling of that situation could be better.
Comment 7•3 years ago
|
||
The two crashes that have come in so far give a device DEVICE_LOST error after Map()
Comment 8•3 years ago
|
||
I am setting it as a blocker for 91 and 92 given the volume of crashes. This bug needs an owner.
Comment 9•3 years ago
|
||
Jeff, should we backout bug 1717737?
Comment 10•3 years ago
|
||
No, we're not crashing there. We're hitting the RELEASE_ASSERT. FWIW, the change in 91 (bug 1718334) won't have changed overall crash volume, it just unified all of the subsequent crashes under a single signature.
Updated•3 years ago
|
Comment 11•3 years ago
|
||
Ok, this is not blocking then
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 12•3 years ago
|
||
We discussed this in triage. The crashes hit a device removed error during compositing, so we need to better handle device resets on this code path. I've improved things on this front, so I'll take a look.
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 13•3 years ago
•
|
||
I think all we need to do here is just return false in MapTile (and other functions as the case may be) and let the existing device reset plumbing handle it when the render call returns:
Assignee | ||
Comment 14•3 years ago
|
||
If we encounter a device reset in
RenderCompositorD3D11SWGL::TileD3D11::Map, we should fail the call, and
rely upon the device reset checks at the end of a render pass to
recreate our compositor sessions.
Assignee | ||
Updated•3 years ago
|
Comment 15•3 years ago
|
||
Pushed by aosmond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/56bb3ec8839f Gracefully handle device reset when mapping tiles with SW-WR + D3D11 compositing. r=jrmuizel
Comment 16•3 years ago
|
||
bugherder |
Updated•3 years ago
|
Comment 17•3 years ago
|
||
Shall the remaining [@ OOM | unknown | mozilla::wr::RenderCompositorD3D11SWGL::TileD3D11::Map ]
crashes get a new bug?
Assignee | ||
Comment 18•3 years ago
|
||
Yes, they appear to be a write failure after the map / original crash in question:
So I would say that is a different problem.
Updated•3 years ago
|
Assignee | ||
Comment 19•3 years ago
|
||
Comment on attachment 9233799 [details]
Bug 1718329 - Gracefully handle device reset when mapping tiles with SW-WR + D3D11 compositing.
Beta/Release Uplift Approval Request
- User impact if declined: Users experiencing device resets with SW-WR + D3D11 may crash
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- 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): It's been verified in nightly and just properly handles a device reset with the existing plumbing.
- String changes made/needed:
Updated•3 years ago
|
Assignee | ||
Comment 20•3 years ago
|
||
Comment on attachment 9233799 [details]
Bug 1718329 - Gracefully handle device reset when mapping tiles with SW-WR + D3D11 compositing.
ESR Uplift Approval Request
- If this is not a sec:{high,crit} bug, please state case for ESR consideration: High crash rate
- User impact if declined: Users experiencing device resets with SW-WR + D3D11 may see crashes
- Fix Landed on Version: 92
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): it's been verified in nightly and just properly handles a device reset with the existing plumbing.
- String or UUID changes made by this patch:
Comment 21•3 years ago
|
||
Comment on attachment 9233799 [details]
Bug 1718329 - Gracefully handle device reset when mapping tiles with SW-WR + D3D11 compositing.
approved for 91.0.1 (release + esr)
Comment 22•3 years ago
|
||
bugherder uplift |
Comment 23•3 years ago
|
||
uplift |
for 91.0.1esr (FIREFOX_91_0_X_RELBRANCH):
https://hg.mozilla.org/releases/mozilla-esr91/rev/8a31141cddf7a7c3e94528b3e8b36f6c7d1de1bb
for 91.1esr (default):
https://hg.mozilla.org/releases/mozilla-esr91/rev/b514d5cd51aa4c931432b741a3c9ee541ae8df2d
Updated•3 years ago
|
Description
•