Closed Bug 1641722 Opened 5 years ago Closed 5 years ago

Crash in [@ mozilla::gfx::GPUParent::RecvInit]

Categories

(Core :: Graphics, defect, P1)

x86
Windows 7
defect

Tracking

()

RESOLVED FIXED
mozilla79
Tracking Status
firefox-esr68 --- disabled
firefox-esr78 --- disabled
firefox77 --- disabled
firefox78 --- disabled
firefox79 --- fixed

People

(Reporter: mccr8, Assigned: bobowen)

References

Details

(Keywords: assertion, crash)

Crash Data

Attachments

(2 files, 1 obsolete file)

This bug is for crash report bp-c2ff0533-ce9c-4d0a-bbe3-42ede0200522.

Top 10 frames of crashing thread:

0 xul.dll mozilla::gfx::GPUParent::RecvInit gfx/ipc/GPUParent.cpp:212
1 xul.dll mozilla::gfx::PGPUParent::OnMessageReceived ipc/ipdl/PGPUParent.cpp:765
2 xul.dll mozilla::ipc::MessageChannel::DispatchMessage ipc/glue/MessageChannel.cpp:2110
3 xul.dll mozilla::ipc::MessageChannel::MessageTask::Run ipc/glue/MessageChannel.cpp:1989
4 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1211
5 xul.dll NS_ProcessNextEvent xpcom/threads/nsThreadUtils.cpp:501
6 xul.dll mozilla::ipc::MessagePump::Run ipc/glue/MessagePump.cpp:109
7 xul.dll MessageLoop::RunHandler ipc/chromium/src/base/message_loop.cc:308
8 xul.dll MessageLoop::Run ipc/chromium/src/base/message_loop.cc:290
9 xul.dll nsBaseAppShell::Run widget/nsBaseAppShell.cpp:137

Crash reason is:
MOZ_DIAGNOSTIC_ASSERT(false) (DeviceManagerDx::Get()->CreateCanvasDevice())

Graphics critical errors are along the lines of: |[G0][GFX1]: Crash during D3D11 device creation for Canvas (t=0.685432)

It looks like this first showed up in the 20200521093657 build.

This is the list of changes in that build: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=6c10970490f3cc19e644964f583be1a047c08b2c&tochange=2d00a1a6495c9b0350c4a7d601df64b49355e701

Nothing in there is obviously at fault to me, though the description of the patch for bug 1638331 does contain the word "crash" and it is related to graphics. However, the crashes here don't seem to contain the right annotation to match.

Bob, it looks like the assertion being hit here was added in bug 1464032. However, the spike in crashes seems only recent. Have you done any work in this area lately?

Blocks: canvas-ipc
Severity: -- → S3
Flags: needinfo?(bobowencode)
Keywords: assertion
Priority: -- → P3

(In reply to Lee Salzman [:lsalzman] from comment #1)

Bob, it looks like the assertion being hit here was added in bug 1464032. However, the spike in crashes seems only recent. Have you done any work in this area lately?

Looks like that's close to where I turned it on by default for Nightly.
I've been watching for crashes with the canvas classes in the stack, so I missed this one ... thanks!

Assignee: nobody → bobowencode
Status: NEW → ASSIGNED
Flags: needinfo?(bobowencode)
Priority: P3 → P1

These are all down to [1] failing, because they all have the associated critical error.

This is an effective diagnostic assert now, so we won't see it in Beta.

I think probably the best course of action is actually to fall back to software in this case.
Probably need to gather telemetry in that case.

[1] https://searchfox.org/mozilla-central/rev/9aa7bebfd169bc2ead00ef596498a406e56bbb85/gfx/thebes/DeviceManagerDx.cpp#357

Data review request for adding some technical data over activation and deactivation of remote canvas 2D.

Attachment #9159189 - Flags: data-review?(chutten)

This also adds telemetry probes to track:

  • when remote canvas 2D is activated
  • when remote canvas 2D is deactivated due to canvas device creation failure
  • number of times remote canvas is deactivated due to a stream read error.
Comment on attachment 9159189 [details] Remote Canvas Deactivation Data Review Form.txt DATA COLLECTION REVIEW RESPONSE: Is there or will there be documentation that describes the schema for the ultimate data set available publicly, complete and accurate? Yes. Is there a control mechanism that allows the user to turn the data collection on and off? Yes. This collection is Telemetry so can be controlled through Firefox's Preferences. If the request is for permanent data collection, is there someone who will monitor the data over time? Yes, :bobowen is responsible. Using the category system of data types on the Mozilla wiki, what collection type of data do the requested measurements fall under? Category 1, Technical. Is the data collection request for default-on or default-off? Default on for all channels. Does the instrumentation include the addition of any new identifiers? No. Is the data collection covered by the existing Firefox privacy notice? Yes. Does there need to be a check-in in the future to determine whether to renew the data? No. This collection is permanent. --- Result: datareview+
Attachment #9159189 - Flags: data-review?(chutten) → data-review+

After discussion with chutten, I decided to change this to expire after six versions.
I also decided to change the booleans to uints, as that will make comparisons with the read failures more meaningful. From crash data that seems like the more prevalent issue.

Carrying dr+

Attachment #9159189 - Attachment is obsolete: true
Attachment #9159620 - Flags: data-review+
Pushed by bobowencode@gmail.com: https://hg.mozilla.org/integration/autoland/rev/8570bd4a1f0b Deactivate remote canvas 2D when device creation or stream read failure occurs. r=jrmuizel,chutten
Flags: needinfo?(bobowencode)
Pushed by bobowencode@gmail.com: https://hg.mozilla.org/integration/autoland/rev/9ca1037fc1cd Deactivate remote canvas 2D when device creation or stream read failure occurs. r=jrmuizel,chutten
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla79
See Also: → 1672582
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: