Closed Bug 1511228 Opened 6 years ago Closed 6 years ago

Erase side effects before running forward to execution points

Categories

(Core Graveyard :: Web Replay, enhancement)

enhancement
Not set
normal

Tracking

(firefox66 fixed)

RESOLVED FIXED
mozilla66
Tracking Status
firefox66 --- fixed

People

(Reporter: bhackett1024, Assigned: bhackett1024)

References

Details

Attachments

(1 file)

Attached patch patchSplinter Review
When a replaying child process pauses, it can create a temporary checkpoint, diverge from the recording and start performing side effects. When running forward in search of breakpoint hits we rewind to the checkpoint first so that the side effects will be erased, but there is no comparable logic when we run forward to reach a specific execution point, as can happen when warping to a place shortly in the future). The attached patch adds support for this.
Attachment #9028828 - Flags: review?(continuation)
Comment on attachment 9028828 [details] [diff] [review] patch Review of attachment 9028828 [details] [diff] [review]: ----------------------------------------------------------------- It is too bad there's no easier way to encapsulate the logic of "we're done messing around with our diverged state, get back to a clean state before we do whatever". I guess there's not quite enough of this logic to justify creating, I don't know, some kind of promises.
Attachment #9028828 - Flags: review?(continuation) → review+
(In reply to Andrew McCreight [:mccr8] from comment #1) > Comment on attachment 9028828 [details] [diff] [review] > patch > > Review of attachment 9028828 [details] [diff] [review]: > ----------------------------------------------------------------- > > It is too bad there's no easier way to encapsulate the logic of "we're done > messing around with our diverged state, get back to a clean state before we > do whatever". I guess there's not quite enough of this logic to justify > creating, I don't know, some kind of promises. Yeah, it's hard to be very general here, particularly because keeping state in untracked memory whose contents are retained after rewinding requires careful management of the memory where different operations are stored. I think there are some simplifications that can still be made here, though, I'll see what I can do.
Pushed by bhackett@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/835a30210291 Erase side effects before running forward to execution points, r=mccr8.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: