Real-World Record And Replay
July 10, 2017 at 2pm CSE 305
Record-and-replay of program executions is a well-researched area, but adoption of such techniques in the real world has been very limited. Mozilla Research launched the “rr” project to design a record-and-replay system optimized for deployability — in particular, one that Mozilla’s own developers could and would use to debug Firefox. This project was successful; rr is the debugger of choice for many developers inside and outside Mozilla. I’ll explain how rr’s design optimized for deployability by repurposing modern hardware and OS features, and what we learned about the design from extensive real-world usage. I will present some constraints on hardware and OS design required to support rr’s approach. Looking forward, the applications of record-and-replay are more interesting than the underlying technology — for example, making interactive debugging relevant again in the cloud. Existing debuggers were designed around implementation constraints obviated by record-and-replay, and are consequently not fit for purpose; we’ll discuss that problem and what to do about it.
Robert O’Callahan obtained a PhD from Carnegie Mellon, worked at IBM Research on dynamic program analysis, and was a Distinguished Engineer at Mozilla working on the browser engine, Web standards and rr. Currently he has a startup company developing a new generation of rr-based debugging tools.