Closed Bug 1755458 Opened 3 years ago Closed 3 years ago

Crash in [@ mozilla::ipc::MessageChannel::Send | mozilla::ipc::IProtocol::ChannelSend | mozilla::dom::PWebGLChild::SendDispatchCommands]

Categories

(Core :: Graphics: Canvas2D, defect)

Firefox 99
defect

Tracking

()

RESOLVED FIXED
100 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox97 --- unaffected
firefox98 --- unaffected
firefox99 --- disabled
firefox100 --- disabled

People

(Reporter: calixte, Assigned: aosmond)

References

(Blocks 2 open bugs, Regression)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

Maybe Fission related. (DOMFissionEnabled=1)

Crash report: https://crash-stats.mozilla.org/report/index/9fbdaeb6-6b82-423e-b2ab-4ea920220213

MOZ_CRASH Reason: MOZ_RELEASE_ASSERT(mWorkerThread && mWorkerThread->IsOnCurrentThread()) (not on worker thread!)

Top 10 frames of crashing thread:

0 libxul.so mozilla::ipc::MessageChannel::Send ipc/glue/MessageChannel.cpp:717
1 libxul.so mozilla::ipc::IProtocol::ChannelSend ipc/glue/ProtocolUtils.cpp:476
2 libxul.so mozilla::dom::PWebGLChild::SendDispatchCommands ipc/ipdl/PWebGLChild.cpp:168
3 libxul.so mozilla::dom::WebGLChild::FlushPendingCmds dom/canvas/WebGLChild.cpp:70
4 libxul.so mozilla::dom::WebGLChild::AllocPendingCmdBytes dom/canvas/WebGLChild.cpp:57
5 libxul.so void mozilla::ClientWebGLContext::Run<void  const dom/canvas/ClientWebGLContext.cpp:352
6 libxul.so mozilla::ClientWebGLContext::RawTexImage const dom/canvas/ClientWebGLContext.cpp:4228
7 libxul.so mozilla::gfx::DrawTargetWebgl::SharedContext::DrawRectAccel dom/canvas/DrawTargetWebgl.cpp:1422
8 libxul.so mozilla::gfx::DrawTargetWebgl::SharedContext::DrawPathAccel dom/canvas/DrawTargetWebgl.cpp:1770
9 libxul.so mozilla::gfx::DrawTargetWebgl::DrawPath dom/canvas/DrawTargetWebgl.cpp:1791

There are 11 crashes (from 4 installations) in nightly 99 starting with buildid 20220212212559. In analyzing the backtrace, the regression may have been introduced by patch [1] to fix bug 1754130.

[1] https://hg.mozilla.org/mozilla-central/rev?node=f30dd1bddb47

Flags: needinfo?(lsalzman)
Severity: S2 → S3
Flags: needinfo?(lsalzman)
Has Regression Range: --- → yes

This is because we use a single shared context, which is only valid on thread it is created on. We probably want a threadlocal shared context.

https://searchfox.org/mozilla-central/rev/d4d7611ee4dd0003b492b865bc5988a4e6afc985/dom/canvas/DrawTargetWebgl.h#229

Assignee: nobody → aosmond
Status: NEW → ASSIGNED

This crash needs both OffscreenCanvas and accelerated canvas to be turned on.

Because ClientWebGLContext is single threaded, we need a different
SharedContext for each thread that an accelerated Canvas2D is created
for.

Pushed by aosmond@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/20e06cb8a8fd Use threadlocal shared WebGL context for accelerated canvas. r=lsalzman
Crash Signature: [@ mozilla::ipc::MessageChannel::Send | mozilla::ipc::IProtocol::ChannelSend | mozilla::dom::PWebGLChild::SendDispatchCommands] → [@ mozilla::ipc::MessageChannel::Send | mozilla::ipc::IProtocol::ChannelSend | mozilla::dom::PWebGLChild::SendDispatchCommands] [@ mozilla::gfx::DrawTargetWebgl::~DrawTargetWebgl]
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
Blocks: 1763941
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: