Closed Bug 1570089 Opened 3 years ago Closed 3 years ago

Recover when replaying processes crash

Categories

(Core Graveyard :: Web Replay, enhancement)

enhancement
Not set
normal

Tracking

(firefox70 fixed)

RESOLVED FIXED
mozilla70
Tracking Status
firefox70 --- fixed

People

(Reporter: bhackett1024, Assigned: bhackett1024)

References

(Blocks 1 open bug)

Details

Attachments

(4 files)

Attached patch patchSplinter Review

If a replaying process crashes, we should be able to recover and continue the debugging session with little interruption for the user. There used to be a mechanism for this, but it was removed as it could lead to long delays for users --- when a process crashed, we would start a new one and bring it to the exact same point as the old one before the user could resume interacting with the tab. With the new control architecture, it is possible to do much better here. Most of the time, replaying processes are running tasks asynchronously in the background; if one of them crashes, we start a new one and the new set of processes will continue running tasks and sharing duties. Sometimes the crashed process is one which is being brought to a point where the tab is paused, but in this case we can just pick another process (whichever is closest to the target point) to take over that job.

The attached patch adds this functionality, though for simplicity there are a couple cases in which a replaying process crash will bring down the whole tab. This patch also fixes some other bugs around crash reporting:

  • If a recording process crashes, the middleman was not getting notified and didn't exit, leaving the tab in an unresponsive state instead of a crashed one.

  • If a replaying process hangs while processing an asynchronous task, we never detect the hang and the tab could end up in an unresponsive state when e.g. resuming.

Pushed by bhackett@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/73faa9185b0d
Part 1 - Recover from replaying process crashes, r=loganfsmyth.
Pushed by bhackett@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/28b46b8166ee
Part 2 - Associate replaying process crash reports with their own pid, r=gsvelto.
https://hg.mozilla.org/integration/autoland/rev/6b5eb4429f83
Part 3 - Generate replaying process crash reports when requested by the middleman, r=mccr8.
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.