Closed
Bug 1375452
Opened 7 years ago
Closed 7 years ago
Crash in mozilla::gfx::DrawTargetD2D1::IntoLuminanceSource
Categories
(Core :: Graphics, defect)
Tracking
()
RESOLVED
FIXED
mozilla56
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox54 | --- | unaffected |
firefox55 | --- | fixed |
firefox56 | --- | fixed |
People
(Reporter: philipp, Assigned: mchang)
References
Details
(Keywords: crash, regression)
Crash Data
Attachments
(1 file, 1 obsolete file)
(deleted),
patch
|
mchang
:
review+
jcristau
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
This bug was filed from the Socorro interface and is report bp-3c5f1fc4-cf0b-480a-8158-c726d0170621. ============================================================= Crashing Thread (0) Frame Module Signature Source 0 xul.dll mozilla::gfx::DrawTargetD2D1::IntoLuminanceSource(mozilla::gfx::LuminanceType, float) gfx/2d/DrawTargetD2D1.cpp:125 1 xul.dll nsSVGMaskFrame::GetMaskForMaskedFrame(nsSVGMaskFrame::MaskParams&) layout/svg/nsSVGMaskFrame.cpp:135 2 xul.dll CreateAndPaintMaskSurface layout/svg/nsSVGIntegrationUtils.cpp:519 3 xul.dll nsSVGIntegrationUtils::PaintMaskAndClipPath(nsSVGIntegrationUtils::PaintFramesParams const&) layout/svg/nsSVGIntegrationUtils.cpp:908 4 xul.dll nsDisplayMask::PaintAsLayer(nsDisplayListBuilder*, nsRenderingContext*, mozilla::layers::LayerManager*) layout/painting/nsDisplayList.cpp:8542 5 xul.dll mozilla::PaintInactiveLayer layout/painting/FrameLayerBuilder.cpp:3704 6 xul.dll mozilla::FrameLayerBuilder::PaintItems(nsTArray<mozilla::FrameLayerBuilder::ClippedDisplayItem>&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, gfxContext*, nsRenderingContext*, nsDisplayListBuilder*, nsPresContext*, mozilla::gfx::IntPointTyped<mozilla::gfx::UnknownUnits> const&, float, float, int) layout/painting/FrameLayerBuilder.cpp:6046 7 xul.dll mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*) layout/painting/FrameLayerBuilder.cpp:6235 8 xul.dll mozilla::layers::BasicPaintedLayer::PaintThebes(gfxContext*, mozilla::layers::Layer*, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*) gfx/layers/basic/BasicPaintedLayer.cpp:94 9 xul.dll mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext&, gfxContext*) gfx/layers/basic/BasicLayerManager.cpp:714 10 xul.dll mozilla::layers::BasicLayerManager::PaintLayer(gfxContext*, mozilla::layers::Layer*, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*) gfx/layers/basic/BasicLayerManager.cpp:898 11 xul.dll mozilla::layers::BasicLayerManager::PaintSelfOrChildren(mozilla::layers::PaintLayerContext&, gfxContext*) gfx/layers/basic/BasicLayerManager.cpp:737 12 xul.dll mozilla::layers::BasicLayerManager::PaintLayer(gfxContext*, mozilla::layers::Layer*, void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*) gfx/layers/basic/BasicLayerManager.cpp:898 13 xul.dll mozilla::layers::BasicLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) gfx/layers/basic/BasicLayerManager.cpp:622 14 xul.dll nsDisplayList::PaintRoot(nsDisplayListBuilder*, nsRenderingContext*, unsigned int) layout/painting/nsDisplayList.cpp:2288 15 xul.dll nsLayoutUtils::PaintFrame(nsRenderingContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) layout/base/nsLayoutUtils.cpp:3697 16 xul.dll mozilla::PresShell::RenderDocument(nsRect const&, unsigned int, unsigned int, gfxContext*) layout/base/PresShell.cpp:4738 17 xul.dll mozilla::image::SVGDrawingCallback::operator()(gfxContext*, gfxRect const&, mozilla::gfx::SamplingFilter, gfxMatrix const&) image/VectorImage.cpp:322 18 xul.dll gfxCallbackDrawable::Draw(gfxContext*, gfxRect const&, mozilla::gfx::ExtendMode, mozilla::gfx::SamplingFilter, double, gfxMatrix const&) gfx/thebes/gfxDrawable.cpp:172 19 xul.dll gfxUtils::DrawPixelSnapped(gfxContext*, gfxDrawable*, gfxSize const&, mozilla::image::ImageRegion const&, mozilla::gfx::SurfaceFormat, mozilla::gfx::SamplingFilter, unsigned int, double) gfx/thebes/gfxUtils.cpp:584 20 xul.dll mozilla::image::imgFrame::InitWithDrawable(gfxDrawable*, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::SurfaceFormat, mozilla::gfx::SamplingFilter, unsigned int, mozilla::gfx::BackendType) image/imgFrame.cpp:366 21 xul.dll mozilla::image::VectorImage::CreateSurfaceAndShow(mozilla::image::SVGDrawingParameters const&, mozilla::gfx::BackendType) image/VectorImage.cpp:967 22 xul.dll mozilla::image::VectorImage::Draw(gfxContext*, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::image::ImageRegion const&, unsigned int, mozilla::gfx::SamplingFilter, mozilla::Maybe<mozilla::SVGImageContext> const&, unsigned int, float) image/VectorImage.cpp:892 23 xul.dll DrawImageInternal layout/base/nsLayoutUtils.cpp:6667 24 xul.dll nsLayoutUtils::DrawSingleImage(gfxContext&, nsPresContext*, imgIContainer*, mozilla::gfx::SamplingFilter, nsRect const&, nsRect const&, mozilla::Maybe<mozilla::SVGImageContext> const&, unsigned int, nsPoint const*, nsRect const*) layout/base/nsLayoutUtils.cpp:6762 25 xul.dll nsImageBoxFrame::PaintImage(nsRenderingContext&, nsRect const&, nsPoint, unsigned int) layout/xul/nsImageBoxFrame.cpp:379 26 xul.dll nsDisplayXULImage::Paint(nsDisplayListBuilder*, nsRenderingContext*) layout/xul/nsImageBoxFrame.cpp:448 27 xul.dll mozilla::FrameLayerBuilder::PaintItems(nsTArray<mozilla::FrameLayerBuilder::ClippedDisplayItem>&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, gfxContext*, nsRenderingContext*, nsDisplayListBuilder*, nsPresContext*, mozilla::gfx::IntPointTyped<mozilla::gfx::UnknownUnits> const&, float, float, int) layout/painting/FrameLayerBuilder.cpp:6060 28 xul.dll mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*) layout/painting/FrameLayerBuilder.cpp:6219 29 xul.dll mozilla::layers::ClientPaintedLayer::PaintThebes(nsTArray<mozilla::layers::ReadbackProcessor::Update>*) gfx/layers/client/ClientPaintedLayer.cpp:86 30 xul.dll mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) gfx/layers/client/ClientPaintedLayer.cpp:140 31 xul.dll mozilla::layers::ClientContainerLayer::RenderLayer() gfx/layers/client/ClientContainerLayer.h:57 32 xul.dll mozilla::layers::ClientLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) gfx/layers/client/ClientLayerManager.cpp:375 33 xul.dll mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags) gfx/layers/client/ClientLayerManager.cpp:433 34 xul.dll nsDisplayList::PaintRoot(nsDisplayListBuilder*, nsRenderingContext*, unsigned int) layout/painting/nsDisplayList.cpp:2288 35 xul.dll nsLayoutUtils::PaintFrame(nsRenderingContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) layout/base/nsLayoutUtils.cpp:3697 36 xul.dll mozilla::PresShell::Paint(nsView*, nsRegion const&, unsigned int) layout/base/PresShell.cpp:6447 37 xul.dll nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) view/nsViewManager.cpp:481 38 xul.dll nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) view/nsViewManager.cpp:413 39 xul.dll nsViewManager::ProcessPendingUpdates() view/nsViewManager.cpp:1095 crash reports with this signature on windows seem to be regressing since bug 1359527.
Comment 1•7 years ago
|
||
Looks like the effect is failing to be created.
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → mchang
Assignee | ||
Comment 2•7 years ago
|
||
Attachment #8880452 -
Flags: review?(jmuizelaar)
Comment 3•7 years ago
|
||
Comment on attachment 8880452 [details] [diff] [review] Fallback to DrawTarget::IntoLuminance if we can't create the effect Review of attachment 8880452 [details] [diff] [review]: ----------------------------------------------------------------- Yuck :) Can we gfxCritialError when this happens as we don't currently expect it but it does happen?
Attachment #8880452 -
Flags: review?(jmuizelaar) → review+
Assignee | ||
Comment 4•7 years ago
|
||
Carrying r+, updated with gfxCriticalError
Attachment #8880452 -
Attachment is obsolete: true
Attachment #8880471 -
Flags: review+
Assignee | ||
Comment 5•7 years ago
|
||
Try - https://treeherder.mozilla.org/#/jobs?repo=try&revision=85cd71b07b898577a5a9f85e6d3e7ffc34b8e23b
Pushed by mchang@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/ad438ff29dff Fallback to DrawTarget::IntoLuminance if we can't create the effect. r=jrmuizel
Comment 7•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ad438ff29dff
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Reporter | ||
Comment 8•7 years ago
|
||
i don't see any more crashes on nightly after build 20170626030209 - could you request uplift to beta as you deem fit?
Flags: needinfo?(mchang)
Assignee | ||
Comment 9•7 years ago
|
||
Comment on attachment 8880471 [details] [diff] [review] Fallback to DrawTarget::IntoLuminance if we can't create the effect Approval Request Comment [Feature/Bug causing the regression]: bug 1359527 [User impact if declined]: Some users can crash if we can't create the effect. [Is this code covered by automated tests?]: Yes [Has the fix been verified in Nightly?]: Yes [Needs manual test from QE? If yes, steps to reproduce]: No [List of other uplifts needed for the feature/fix]: None [Is the change risky?]: No [Why is the change risky/not risky?]: This is just a null check when we create the luminance effect. [String changes made/needed]: None
Flags: needinfo?(mchang)
Attachment #8880471 -
Flags: approval-mozilla-beta?
Comment 10•7 years ago
|
||
Comment on attachment 8880471 [details] [diff] [review] Fallback to DrawTarget::IntoLuminance if we can't create the effect crash fix for beta55
Attachment #8880471 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 11•7 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-beta/rev/bcae7edf68cc
Comment 12•7 years ago
|
||
(In reply to Mason Chang [:mchang] from comment #9) > [Is this code covered by automated tests?]: Yes > [Has the fix been verified in Nightly?]: Yes > [Needs manual test from QE? If yes, steps to reproduce]: No Setting qe-verify- based on Mason's assessment on manual testing needs and the fact that this fix has automated coverage.
Flags: qe-verify-
Updated•7 years ago
|
status-firefox-esr52:
--- → unaffected
Reporter | ||
Updated•7 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•