Closed
Bug 1156058
Opened 11 years ago
Closed 11 years ago
crash in mozilla::layers::CanvasClientSharedSurface::Update(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits>, mozilla::layers::ClientCanvasLayer*)
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
FIXED
mozilla40
People
(Reporter: Sylvestre, Assigned: jgilbert)
References
Details
(Keywords: crash)
Crash Data
Attachments
(1 file, 1 obsolete file)
|
1.71 KB,
patch
|
milan
:
review+
Sylvestre
:
approval-mozilla-beta+
Sylvestre
:
approval-mozilla-release+
|
Details | Diff | Splinter Review |
I could reopen bug 1126918 but I guess this is likely to be a new bug.
A user complained on twitter ( https://twitter.com/iMilnb/status/589726237305757696 ) this morning about this bug.
Here are the two crashes report:
bp-381511f3-49da-446a-ad46-116d72150418
bp-350ffee0-4951-4ea6-a2cc-8a7782150419
| Reporter | ||
Comment 1•11 years ago
|
||
Milan, Jeff, does it ring a bell?
status-firefox37:
--- → affected
status-firefox38:
--- → ?
Flags: needinfo?(milan)
Flags: needinfo?(jgilbert)
Comment 2•11 years ago
|
||
Skia font metrics; and it looks like Lollipop 5.1? Adding a few more people on this, not sure this is Jeff's domain.
Flags: needinfo?(snorp)
Flags: needinfo?(milan)
Flags: needinfo?(jgilbert)
Flags: needinfo?(gwright)
Comment 4•11 years ago
|
||
Busted stack is annoying, but this is clearly in CanvasClientSharedSurface.
The crash is at UniquePtr::get() with |this| == 0x8.
In ShSurfHandle, mSurf is at 0x8 so calling ShSurfHandle::Surf() with |this| == 0x0 would cause this crash.
[1] calls mFront->Surf() on a ShSurfHandle, and we don't null check if previously if CloneSurface failed.
Jeff, want to fix this?
[1] http://hg.mozilla.org/releases/mozilla-release/annotate/9aecbdea0799/gfx/layers/client/CanvasClient.cpp#l366
Flags: needinfo?(snorp) → needinfo?(jgilbert)
| Assignee | ||
Comment 5•11 years ago
|
||
(In reply to Matt Woodrow (:mattwoodrow) from comment #4)
> Busted stack is annoying, but this is clearly in CanvasClientSharedSurface.
>
> The crash is at UniquePtr::get() with |this| == 0x8.
>
> In ShSurfHandle, mSurf is at 0x8 so calling ShSurfHandle::Surf() with |this|
> == 0x0 would cause this crash.
>
> [1] calls mFront->Surf() on a ShSurfHandle, and we don't null check if
> previously if CloneSurface failed.
>
> Jeff, want to fix this?
>
> [1]
> http://hg.mozilla.org/releases/mozilla-release/annotate/9aecbdea0799/gfx/
> layers/client/CanvasClient.cpp#l366
Sure.
Assignee: nobody → jgilbert
Comment 6•11 years ago
|
||
(In reply to George Wright (:gw280) from comment #3)
> Busted stack. Any way of getting STR?
Usually it can be helpful to load a minidump into a debugger and trying to get a stack from there. Or ask :dmajor to do that and try to get a cleaner stack if you really need it.
Comment 7•11 years ago
|
||
Null pointer check, wouldn't worry about try.
Flags: needinfo?(jgilbert)
Attachment #8596798 -
Flags: review?(jgilbert)
| Assignee | ||
Comment 8•11 years ago
|
||
Comment on attachment 8596798 [details] [diff] [review]
Null pointer check. r=jgilbert
Review of attachment 8596798 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/client/CanvasClient.cpp
@@ +362,1 @@
> MOZ_ASSERT(mFront);
Assert before the return. This is a bad case we want to know about.
Attachment #8596798 -
Flags: review?(jgilbert) → review+
Comment 9•11 years ago
|
||
Use gfxCriticalError instead of the assert (as it asserts in debug anyway, but also leaves a trace in release build without crashing.)
Attachment #8596798 -
Attachment is obsolete: true
Attachment #8597380 -
Flags: review+
Comment 11•11 years ago
|
||
Keywords: checkin-needed
| Assignee | ||
Comment 12•11 years ago
|
||
Comment on attachment 8597380 [details] [diff] [review]
Null pointer check. Carry r=jgilbert
Review of attachment 8597380 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/client/CanvasClient.cpp
@@ -374,5 @@
> auto layersBackend = shadowForwarder->GetCompositorBackendType();
>
> newTex = TexClientFromReadback(surf, forwarder, flags, layersBackend);
> }
> - MOZ_ASSERT(newTex);
Please don't remove this.
Comment 13•11 years ago
|
||
(In reply to Jeff Gilbert [:jgilbert] from comment #12)
> Comment on attachment 8597380 [details] [diff] [review]
> Null pointer check. Carry r=jgilbert
>
> Review of attachment 8597380 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: gfx/layers/client/CanvasClient.cpp
> @@ -374,5 @@
> > auto layersBackend = shadowForwarder->GetCompositorBackendType();
> >
> > newTex = TexClientFromReadback(surf, forwarder, flags, layersBackend);
> > }
> > - MOZ_ASSERT(newTex);
>
> Please don't remove this.
It's redundant, right? It's followed by
if (!newTex) {
gfxCriticalError...
}
and gfxCriticalError asserts.
| Assignee | ||
Comment 14•11 years ago
|
||
Ah, yeah. I'm not used to seeing that pattern.
Comment 15•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
status-firefox40:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla40
Comment 16•11 years ago
|
||
[Tracking Requested - why for this release]: Crash signature that is resolved on 40. Topcrash for Android.
status-firefox38.0.5:
--- → affected
status-firefox39:
--- → affected
tracking-firefox38.0.5:
--- → ?
tracking-firefox39:
--- → ?
| Reporter | ||
Comment 17•11 years ago
|
||
Milan, can you fill an uplift request for 38.0.5b3? Thanks
Flags: needinfo?(milan)
Comment 18•11 years ago
|
||
Comment on attachment 8597380 [details] [diff] [review]
Null pointer check. Carry r=jgilbert
Approval Request Comment
[Feature/regressing bug #]:
[User impact if declined]: This was one of the top Android crashers.
[Describe test coverage new/current, TreeHerder]:
[Risks and why]: Null pointer check, low risk.
[String/UUID change made/needed]:
Flags: needinfo?(milan)
Attachment #8597380 -
Flags: approval-mozilla-beta?
Comment 19•11 years ago
|
||
Though there aren't many crashes with this signature for 39 (only 2 in the last month) we don't have a very big user base for aurora here. So it seems best to uplift this to 39 as well.
Comment 20•11 years ago
|
||
Comment on attachment 8597380 [details] [diff] [review]
Null pointer check. Carry r=jgilbert
Setting a flag for mozilla-release for 38.0.5, which is I think Milan's intention in comment 18.
Attachment #8597380 -
Flags: approval-mozilla-release?
| Reporter | ||
Comment 21•11 years ago
|
||
Comment on attachment 8597380 [details] [diff] [review]
Null pointer check. Carry r=jgilbert
Top crash #1 on Android, taking it.
Attachment #8597380 -
Flags: approval-mozilla-release?
Attachment #8597380 -
Flags: approval-mozilla-release+
Attachment #8597380 -
Flags: approval-mozilla-beta?
Attachment #8597380 -
Flags: approval-mozilla-beta+
Comment 22•11 years ago
|
||
Comment 23•11 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•