Closed Bug 1546192 Opened 7 months ago Closed 5 months ago

Crash in [@ mozilla::gl::SharedSurface::ProdCopy]

Categories

(Core :: Graphics: Layers, defect, P2, critical)

x86
Windows
defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox-esr60 --- wontfix
firefox66 --- wontfix
firefox67 --- wontfix
firefox68 --- wontfix
firefox69 --- fixed

People

(Reporter: marcia, Assigned: sotaro)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

This bug is for crash report bp-f41e0be3-8559-4e72-99f5-d0f620190422.

Seen while looking at 66.0.3 crash stats: https://bit.ly/2URl2Gk. Not new to 66 but it didn't have a bug, so filing now. Some shareablecanvas in the stack so I bucketed in WR.

(81.18% in signature vs 45.56% overall) platform_pretty_version = Windows 7

Top 10 frames of crashing thread:

0 xul.dll mozilla::gl::SharedSurface::ProdCopy gfx/gl/SharedSurface.cpp
1 xul.dll mozilla::gl::SharedSurface::ProdCopy gfx/gl/SharedSurface.cpp:42
2 xul.dll bool mozilla::gl::GLScreenBuffer::Swap gfx/gl/GLScreenBuffer.cpp:533
3 xul.dll mozilla::gl::GLScreenBuffer::PublishFrame gfx/gl/GLScreenBuffer.cpp:558
4 xul.dll mozilla::WebGLContext::PresentScreenBuffer dom/canvas/WebGLContext.cpp:1393
5 xul.dll static void mozilla::WebGLContextUserData::PreTransactionCallback dom/canvas/WebGLContext.cpp:1100
6 xul.dll mozilla::layers::ShareableCanvasRenderer::UpdateCompositableClient gfx/layers/ShareableCanvasRenderer.cpp:214
7 xul.dll mozilla::layers::ClientCanvasLayer::RenderLayer gfx/layers/client/ClientCanvasLayer.cpp:25
8 xul.dll mozilla::layers::ClientLayer::RenderLayerWithReadback gfx/layers/client/ClientLayerManager.h:370
9 xul.dll mozilla::layers::ClientContainerLayer::RenderLayer gfx/layers/client/ClientContainerLayer.h:53

Doesn't look specific to WR, moving to Layers

Component: Graphics: WebRender → Graphics: Layers

One possibility is that SharedSurface_Basic::Create() returned nullptr and tried to dereference it.

Majority of crash logs had texture allocation failure. Then oom seems to be related.

In GLScreenBuffer::Swap(), if it failed to allocate SharedSurfaceTextureClient, it just returned false. It seems better to handle SharedSurface::ProdCopy() failure similar way.

Assignee: nobody → sotaro.ikeda.g
Status: NEW → ASSIGNED
OS: Windows 7 → Windows
Priority: -- → P2
Pushed by jgilbert@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d75e4cb5b188
Check SharedSurface_Basic::Create failure r=jgilbert
Backout by dvarga@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b7383db082d6
Backed out changeset d75e4cb5b188 for build bustage at /builds/worker/workspace/build/src/gfx/gl/GLScreenBuffer.cpp. On a CLOSED TREE

Probably just needs to be rebased, since I changed GLScreenBuffer just now.

Pushed by sikeda@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/987a32cede5f
Check SharedSurface_Basic::Create failure
Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69

Please nominate this for Beta approval if you're comfortable doing so.

Flags: needinfo?(sotaro.ikeda.g)

We could wait a next merge.

Flags: needinfo?(sotaro.ikeda.g)
You need to log in before you can comment on or make changes to this bug.