Closed Bug 1416864 Opened 7 years ago Closed 7 years ago

Crash in mozilla::gfx::DrawTargetD2D1::Flush

Categories

(Core :: Graphics, defect, P1)

58 Branch
Unspecified
Windows
defect

Tracking

()

RESOLVED FIXED
mozilla59
Tracking Status
firefox-esr52 --- unaffected
firefox57 --- wontfix
firefox58 --- fixed
firefox59 --- fixed

People

(Reporter: philipp, Assigned: dvander)

References

Details

(Keywords: crash, regression, Whiteboard: [gfx-noted])

Crash Data

Attachments

(1 file)

This bug was filed from the Socorro interface and is report bp-8d8a83ff-16fc-4766-b28f-4fa870171113. ============================================================= Top 9 frames of crashing thread: 0 xul.dll mozilla::gfx::DrawTargetD2D1::Flush gfx/2d/DrawTargetD2D1.cpp:175 1 xul.dll mozilla::gfx::DrawTargetD2D1::MarkChanged gfx/2d/DrawTargetD2D1.cpp:1291 2 xul.dll mozilla::gfx::DrawTargetD2D1::PrepareForDrawing gfx/2d/DrawTargetD2D1.cpp:1311 3 xul.dll mozilla::gfx::DrawTargetD2D1::DrawSurface gfx/2d/DrawTargetD2D1.cpp:187 4 xul.dll mozilla::dom::CanvasRenderingContext2D::DrawImage dom/canvas/CanvasRenderingContext2D.cpp:5339 5 xul.dll mozilla::dom::CanvasRenderingContext2D::DrawImage dom/canvas/CanvasRenderingContext2D.h:241 6 xul.dll mozilla::dom::CanvasRenderingContext2DBinding::drawImage dom/bindings/CanvasRenderingContext2DBinding.cpp:2775 7 xul.dll mozilla::dom::GenericBindingMethod dom/bindings/BindingUtils.cpp:3040 8 @0x13186e505a4 ============================================================= crashes with this signature are noticeably rising during the 58 cycle.
This does seem suspicious. I wanted to add threadsafety assertions to DrawTargetD2D1, but now I think we should just copy the mutex solution from Skia.
Assignee: nobody → dvander
Status: NEW → ASSIGNED
Attached patch add lock (deleted) — Splinter Review
SourceSurfaceD2D1 and DrawTargetD2D1 are not synchronized. I don't know if this is *the* problem, but it's hard to imagine it's not *a* problem.
Attachment #8929995 - Flags: review?(bas)
Attachment #8929995 - Flags: review?(bas) → review+
Pushed by ryanvm@gmail.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/1e9296f9dd46 Synchronize how snapshots detach in DrawTargetD2D1. r=bas
Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla59
We still have some crashes with this signature on nightly, e.g. https://crash-stats.mozilla.com/report/index/ec1e49b3-7800-40ca-829b-3719d0171124 Should that go in a separate bug?
Flags: needinfo?(dvander)
Yeah, can you please file a new bug?
Flags: needinfo?(dvander)
Is this ready for a Beta uplift request?
Flags: needinfo?(dvander)
Crash Signature: [@ mozilla::gfx::DrawTargetD2D1::Flush] → [@ mozilla::gfx::DrawTargetD2D1::Flush] [@ std::_Hash<T>::equal_range | std::_Hash<T>::erase | mozilla::gfx::DrawTargetD2D1::Flush]
Comment on attachment 8929995 [details] [diff] [review] add lock Approval Request Comment [Feature/Bug causing the regression]: OMTP [User impact if declined]: Potential crash due to race condition [Is this code covered by automated tests?]: [Has the fix been verified in Nightly?]: [Needs manual test from QE? If yes, steps to reproduce]: [List of other uplifts needed for the feature/fix]: [Is the change risky?]: No [Why is the change risky/not risky?]: This just introduces a lock to synchronize access to a pointer. None of this code is re-entrant so there is no risk of deadlock. [String changes made/needed]:
Flags: needinfo?(dvander)
Attachment #8929995 - Flags: approval-mozilla-beta?
Comment on attachment 8929995 [details] [diff] [review] add lock Fix a crash. Beta58+.
Attachment #8929995 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: