Crash in [@ mozilla::gfx::SourceSurfaceCapture::IsValid]
Categories
(Core :: Layout: Images, Video, and HTML Frames, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox-esr78 | 78+ | fixed |
firefox75 | --- | unaffected |
firefox76 | --- | unaffected |
firefox77 | --- | wontfix |
firefox78 | + | fixed |
firefox79 | + | fixed |
People
(Reporter: calixte, Assigned: bobowen)
References
(Blocks 1 open bug, Regression)
Details
(4 keywords, Whiteboard: [post-critsmash-triage][adv-main78+r])
Crash Data
This bug is for crash report bp-3e6c3946-5892-4bd5-a913-54ade0200417.
Top 10 frames of crashing thread:
0 xul.dll mozilla::gfx::SourceSurfaceCapture::IsValid const gfx/2d/SourceSurfaceCapture.cpp
1 xul.dll mozilla::image::DrawableFrameRef::DrawableFrameRef image/imgFrame.h:349
2 xul.dll mozilla::image::DecodedSurfaceProvider::DrawableRef image/DecodedSurfaceProvider.cpp:68
3 xul.dll mozilla::image::ISurfaceProvider::Surface image/ISurfaceProvider.h:268
4 xul.dll mozilla::image::SurfaceCacheImpl::LookupBestMatch image/SurfaceCache.cpp:1008
5 xul.dll static mozilla::image::SurfaceCache::LookupBestMatch image/SurfaceCache.cpp:1593
6 xul.dll mozilla::image::RasterImage::LookupFrameInternal image/RasterImage.cpp:317
7 xul.dll mozilla::image::RasterImage::LookupFrame image/RasterImage.cpp:343
8 xul.dll mozilla::image::RasterImage::RequestDecodeForSizeInternal image/RasterImage.cpp:1155
9 xul.dll mozilla::image::RasterImage::RequestDecodeForSize image/RasterImage.cpp:1121
There are 4 crashes (from 3 installations) in nightly 77 starting with buildid 20200417100143. In analyzing the backtrace, the regression may have been introduced by patch [1] to fix bug 1616411.
[1] https://hg.mozilla.org/mozilla-central/rev?node=747bdbeee667
Comment 1•5 years ago
|
||
We're crashing in SourceSurfaceCapture::IsValid
as we try to call mSurfToOptimize->IsValid()
but the vtable pointer we pull out from mSurfToOptimize
is garbage (0xe5e5e5e5c8800000, in this case). The mSurfToOptimize
pointer itself looks like it could have been legitimate.
Updated•5 years ago
|
Comment 3•5 years ago
|
||
Given this is a crash on Windows, without WebRender, mSurfToOptimize is most likely a SourceSurfaceVolatileData:
Neither SourceSurfaceVolatileData nor SourceSurfaceAlignedRawData override SourceSurface::IsValid. They use the implementation from the base class SourceSurface which just returns true:
https://searchfox.org/mozilla-central/rev/a4d62e09a4c46aef918667fa759bf9ae898dc258/gfx/2d/2D.h#432
We put the SourceSurfaceVolatileData stored in mLockedSurface into a SourceSurfaceCapture here:
There are locks surrounding the use of both mLockedSurface and mSurfToOptimize. Maybe that is relevant (a place we forgot to hold the lock?).
I skimmed the reviews for the potential regressing bug, but nothing stood out for me....
Updated•5 years ago
|
Comment 6•5 years ago
|
||
Setting to P2 due to low volume. We will keep an eye on it and if crash volume goes up we can reassess.
Updated•5 years ago
|
These are current, open bugs with a Severity of critical
. The Severity of these bugs is being changed to S2
to be consistent with the May 4 2020 Severity definitions.
Please let Release Management know if these bugs are still S2
.
Comment 8•5 years ago
|
||
I'm leaving this at S2, but I haven't had any luck investigating it yet. I tried a few URLs from crash reports but didn't reproduce the crash. Of those I looked at, none had JPEGs with orientations.
Updated•5 years ago
|
Updated•4 years ago
|
Comment 9•4 years ago
|
||
[Tracking Requested - why for this release]:
this signature is jumping up in volume in early data from the 78.0b rollout.
Comment 11•4 years ago
|
||
Maybe bug 1644208 fixes this?
Comment 12•4 years ago
|
||
(In reply to Timothy Nikkel (:tnikkel) from comment #11)
Maybe bug 1644208 fixes this?
Sure looks like it! No crashes in 78.0b6+ where that fix is present.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Description
•