Crash in [@ mozilla::recordreplay::PassThroughThreadEventsAllowCallbacks]
Categories
(Core Graveyard :: Web Replay, defect)
Tracking
(firefox-esr60 unaffected, firefox-esr68 unaffected, firefox68 unaffected, firefox69 unaffected, firefox70 fixed)
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox-esr68 | --- | unaffected |
firefox68 | --- | unaffected |
firefox69 | --- | unaffected |
firefox70 | --- | fixed |
People
(Reporter: marcia, Assigned: bhackett1024)
Details
(Keywords: crash, regression)
Crash Data
Attachments
(1 file)
This bug is for crash report bp-033e21de-4a07-4880-91ef-6b4100190819.
Seen while looking at nightly crash stats, so far 10 crashes but from a single install. Crashes started in 20190818215144. It appears some code was touched in Bug 1574570, which landed on 8-17. ni on :bhackett
Top 10 frames of crashing thread:
0 XUL mozilla::recordreplay::PassThroughThreadEventsAllowCallbacks toolkit/recordreplay/Callback.cpp:118
1 XUL mozilla::recordreplay::Preamble_CGPathApply toolkit/recordreplay/ProcessRedirectDarwin.cpp:1730
2 XUL mozilla::recordreplay::CallPreambleHook toolkit/recordreplay/ProcessRedirect.cpp:35
3 XUL RecordReplayInterceptCall toolkit/recordreplay/ProcessRedirect.cpp:62
4 XUL RecordReplayRedirectCall_Loop
5 XUL SkScalerContext::internalGetPath gfx/skia/skia/src/core/SkScalerContext.cpp:589
6 XUL SkGlyph::addPath gfx/skia/skia/src/core/SkGlyph.cpp:113
7 XUL SkTextInterceptsIter::next gfx/skia/skia/src/core/SkTextBlob.cpp:958
8 XUL SkTextBlob::getIntercepts const gfx/skia/skia/src/core/SkTextBlob.cpp:634
9 XUL nsCSSRendering::PaintDecorationLine layout/painting/nsCSSRendering.cpp:4138
Assignee | ||
Comment 1•5 years ago
|
||
These crashes are happening when we try to perform CGPathApply calls after diverging from the recording, which is the lingering issue predicted in bug 1574570 comment 0. We don't have a way currently to perform calls in the middleman which involve Gecko callbacks. The best way to fix this is to avoid using the callback infrastructure for CGPathApply, which is overkill as the function has no side effects. We can just accumulate all the path information in the middleman and pass it back to the replaying process, which can then invoke the apply function callback on that data. This allows a similar strategy with shared code to be used in both the recorded call and middleman call cases. I'll attach a patch to fix this shortly. This patch also fixes the repaint stress mode so that it works again (it stopped working after the search based control logic was added a few months agao); this bug is pretty easy to reproduce in this mode.
Assignee | ||
Comment 2•5 years ago
|
||
Pushed by bhackett@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5909193688b5 Support calls to CGPathApply after diverging from the recording, r=loganfsmyth.
Comment 4•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Updated•5 years ago
|
Updated•4 years ago
|
Description
•