January 16, 2020

370 words 2 mins read

Seeing whats wrong just right

Seeing whats wrong just right

A developer hunting for a bug is like a doctor hunting for an illness. She does not need complete understanding of the body for the hunt to be successful. Jasvir Nagra and Marianna Bezler share a few painful distributed web app debugging anecdotes and an alternate approach using virtualization and visualization to get a holistic view of a program to track down elusive bugs.

Talk Title Seeing whats wrong just right
Speakers Jasvir Nagra (Instart Logic), Marianna Bezler (Instart Logic)
Conference O’Reilly Velocity Conference
Conf Tag Build Resilient Distributed Systems
Location London, United Kingdom
Date October 18-20, 2017
URL Talk Page
Slides Talk Slides
Video

One approach tool developers have taken to managing the complexity of writing large web programs is to make it harder to write incorrect programs. Static type checkers, linters, tests and testing frameworks have all made it easier to write correct code. Nevertheless, incorrect programs still exist. In fact, the very success of these tools in avoiding common errors has meant developers spend increasing amounts of time debugging only subtle bugs. In distributed systems, the challenge is even harder because debugging tools give you glimpses into the program state—some on the server, some on the client—without giving you a coherent view of the entire system. Not only are web programs inherently distributed between the server and the client, any one web page in the browser is itself made up of different iframes, events and event handlers, and sometimes service workers all communicating asynchronously. Jasvir Nagra and Marianna Bezler share a few painful distributed web app debugging anecdotes and an alternate approach to get a holistic view of a program to track down elusive bugs. This approach uses virtualization to create complete traces of just those aspects of the program we suspect are buggy without having to model all program state, virtualization to allow us to momentarily ignore incidental bugs discovered while hunting the core one without it getting in the way, and visualization of the collected traces to build up causal diagrams to inform our intuition when our mental models deviate from reality. Jasvir and Marianna demonstrate how to recognize and tackle debugging problems with this approach and cover pitfalls you may ran into with virtualization.

comments powered by Disqus