Closed Bug 1687265 Opened 3 years ago Closed 3 years ago

Crash in [@ memcpy | ReadPixels]

Categories

(Core :: Graphics: WebRender, defect)

Unspecified
Windows
defect

Tracking

()

RESOLVED FIXED
86 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox84 --- unaffected
firefox85 --- unaffected
firefox86 --- fixed

People

(Reporter: gsvelto, Assigned: lsalzman)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

Attachments

(2 files)

Crash report: https://crash-stats.mozilla.org/report/index/fdf08841-0e78-4bc9-b3ee-b360a0210117

Reason: EXCEPTION_ACCESS_VIOLATION_READ

Top 10 frames of crashing thread:

0 vcruntime140.dll memcpy f:\dd\vctools\crt\vcruntime\src\string\i386\memcpy.asm:319
1 xul.dll ReadPixels gfx/wr/swgl/src/gl.cc:2666
2 xul.dll swgl::swgl_fns::{{impl}}::read_pixels_into_buffer gfx/wr/swgl/src/swgl_fns.rs:594
3 xul.dll webrender::device::gl::Device::read_pixels_into gfx/wr/webrender/src/device/gl.rs:3124
4 xul.dll webrender::renderer::Renderer::read_pixels_into gfx/wr/webrender/src/renderer/mod.rs:5226
5 xul.dll webrender_bindings::bindings::wr_renderer_readback gfx/webrender_bindings/src/bindings.rs:768
6 xul.dll mozilla::wr::RenderThread::UpdateAndRender gfx/webrender_bindings/RenderThread.cpp:516
7 xul.dll mozilla::wr::WebRenderAPI::Readback::Readback::Run gfx/webrender_bindings/WebRenderAPI.cpp:515
8 xul.dll mozilla::wr::RenderThread::RunEvent gfx/webrender_bindings/RenderThread.cpp:410
9 xul.dll static mozilla::detail::RunnableMethodArguments<mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >&&>::applyImpl<mozilla::wr::RenderThread, void  xpcom/threads/nsThreadUtils.h:1148

Only a handful of crashes here but they're coming from different installations and the stacks are consistent so this looks valid. The first buildid that's affected is 20210115125655.

GraphicsCriticalErrors had the following error. It seemed to be related.

RenderCompositorSWGL failed mapping default framebuffer

When the crash happned, CanvasRenderingContext2D::DrawWindow() was called.

The call seemed to come from the following.

The following expects that the DrawWindow() is not called with WebRender. But the check does not work with software WebRender.

The following returns different strings between hardware WebRender and software WebRender.

SanityTest.jsm does not expects that the DrawWindow() is called with software WebRender, though software WebRender seemed have a problem of readback.

Depends on: 1687613
See Also: → 1687170
Assignee: nobody → lsalzman
Status: NEW → ASSIGNED
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/31a10d770e4d
try to avoid out-of-bounds ReadPixels. r=jrmuizel
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f270b9071a8e
clear out old SWGL framebuffer after frame ends. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: