Crash in [@ mozilla::layers::CanvasTranslator::TranslateRecording] - event type: 18
Categories
(Core :: Graphics, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox-esr68 | --- | unaffected |
firefox67 | --- | unaffected |
firefox67.0.1 | --- | unaffected |
firefox68 | --- | unaffected |
firefox69 | --- | disabled |
firefox72 | --- | disabled |
firefox73 | --- | disabled |
firefox74 | --- | disabled |
firefox75 | --- | fixed |
People
(Reporter: calixte, Assigned: bobowen)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: crash, regression)
Crash Data
Attachments
(2 files)
This bug is for crash report bp-7b64357d-3cb1-4aa2-a870-00ffc0190609.
Top 10 frames of crashing thread:
0 xul.dll void CrashStatsLogForwarder::CrashAction gfx/thebes/gfxPlatform.cpp:398
1 xul.dll mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::Flush gfx/2d/Logging.h:288
2 xul.dll void mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::~Log gfx/2d/Logging.h:281
3 xul.dll mozilla::layers::CanvasTranslator::TranslateRecording gfx/layers/CanvasTranslator.cpp:94
4 xul.dll void mozilla::layers::CanvasParent::StartTranslation gfx/layers/ipc/CanvasParent.cpp:144
5 xul.dll nsresult mozilla::detail::RunnableMethodImpl< xpcom/threads/nsThreadUtils.h:1176
6 xul.dll nsresult nsThreadPool::Run xpcom/threads/nsThreadPool.cpp:244
7 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1176
8 xul.dll NS_ProcessNextEvent xpcom/threads/nsThreadUtils.cpp:486
9 xul.dll mozilla::ipc::MessagePumpForNonMainThreads::Run ipc/glue/MessagePump.cpp:303
There are 2 crashes (from 1 installation) in nightly 69 with buildid 20190609090758. In analyzing the backtrace, the regression may have been introduced by patch [1] to fix bug 1464032.
[1] https://hg.mozilla.org/mozilla-central/rev?node=04067aec22bb
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
This crashed creating a SourceSurface in the GPU process recording playback.
The fact it's gone away could just be down to the pref being disabled again, so I'm going to set this to block release as hopefully we'll see it again on Nightly once I enable by default (if it isn't already fixed).
Comment 2•5 years ago
|
||
I enabled gfx.canvas.remote yesterday, restarted Nightly, browsed the demos at https://davidwalsh.name/canvas-demos, and crashed on http://codepen.io/ara_machine/pen/nuJCG giving crash report bp-ee5e9be6-4ff5-4763-b078-3fe670190911 with this signature.
I was not able to reproduce the crash just now.
Assignee | ||
Comment 3•5 years ago
|
||
(In reply to Alistair Vining from comment #2)
I enabled gfx.canvas.remote yesterday, restarted Nightly, browsed the demos at https://davidwalsh.name/canvas-demos, and crashed on http://codepen.io/ara_machine/pen/nuJCG giving crash report bp-ee5e9be6-4ff5-4763-b078-3fe670190911 with this signature.
I was not able to reproduce the crash just now.
Hi Alistair, thanks for testing and reporting this.
I think I've managed to reproduce this.
It looks like an issue in the Path recording/translation in some edge case.
Hopefully it won't take too long to pinpoint the problem.
Assignee | ||
Comment 4•5 years ago
|
||
The crash in TranslateRecording is for when any event type fails to play back, so I'm going to split this out into a number of different bugs.
This one has already discussed event type 18 (PATHCREATION), so I'll switch this one to that.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 5•5 years ago
|
||
Having split all these out, it looks like they are probably all due to the reading from the ringbuffer failing.
So, I think I need to treat those differently, probably adding critical notes/error so it can be picked up in subsequent crashes if they occur.
Assignee | ||
Comment 6•5 years ago
|
||
I think the read failures can only be because the content process has timed out trying to write or it has shutdown.
So my plan is to only have a short timeout when writing and then create a new shared memory buffer, so that we are never waiting.
As for the shutdown scenario, we will no longer crash on event translation failure when bug 1598585 lands.
Assignee | ||
Comment 10•5 years ago
|
||
(In reply to Bob Owen (:bobowen) from comment #6)
I think the read failures can only be because the content process has timed out trying to write or it has shutdown.
So my plan is to only have a short timeout when writing and then create a new shared memory buffer, so that we are never waiting.
As for the shutdown scenario, we will no longer crash on event translation failure when bug 1598585 lands.
I did get something working for creating new shared memory, but ran into a bit of a problem with passing the handle.
On reflection I decided that the shutdown scenario is probably more likely, so initially I'm just going to land some more logging given that the failure itself will no longer cause a crash.
Assignee | ||
Comment 11•5 years ago
|
||
Depends on D61825
Assignee | ||
Comment 12•5 years ago
|
||
If the other side crashed with AboutToWait set in CanvasEventRingBuffer then in
theory we could spin forever waiting for it to change.
Depends on D61826
Assignee | ||
Comment 13•5 years ago
|
||
Comment 14•5 years ago
|
||
Comment 15•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/3b8384aee07a
https://hg.mozilla.org/mozilla-central/rev/d2a8ac40ce6b
Updated•5 years ago
|
Updated•5 years ago
|
Updated•3 years ago
|
Description
•