[Seminar] Saving Programmer Ryan from Concurrency Errors
In this talk, I present ProRace and Node.fz, which allow developers to detect subtle-yet-critical concurrency errors (e.g., data races) in modern multi-threaded and/or event-driven server programs at a very low overhead, yet with a high probability.
ProRace supports data race detection of "multi-threaded" server programs in production. ProRace uses the performance monitoring unit (PMU) in commodity processors to transparently sample memory accesses, and leverages the PMU-provided register states and program path to reconstruct unsampled memory accesses offline. ProRace enables data race detection on both sampled and unsampled-but-reconstructed memory accesses, addressing inherent limitations of a sampling-based approach.
Node.fz provides a schedule fuzzing test tool for "event-driven" server programs, embodied for Node.js programs. Just as thread-based programs can have concurrency errors between unordered threads, event-driven programs may have them between unordered events. Node.fz randomly perturbs the execution of a Node.js program, allowing Node.js developers to explore a broader schedule space with the same test time budget, ensuring that applications will be stable in a wide variety of deployment conditions.
Dongyoon Lee is an Assistant Professor in the Computer Science department at Virginia Tech. He obtained the M.S. (2009) and Ph.D. (2013) degrees in Computer Science and Engineering at the University of Michigan, Ann Arbor; and the B.S. (2004) degree in Electrical Engineering at the Seoul National University in Korea. Before joining Virginia Tech, he worked as an academic visitor in the next generation middleware platforms department at IBM T. J. Watson Research Center (Fall 2013). He also interned in the operating systems group at Microsoft Research, Redmond (Summer 2012), and in the systems analysis and verification department at NEC Laboratories America (Summer 2011).
He is a computer systems researcher with particular interests in building efficient, robust, and secure software systems. His research broadly spans the areas of operating systems, program analysis, and computer architecture. He received a Virginia Tech ICTAS Junior Faculty Award in 2017, a Google Research Award in 2015, a ProQuest Distinguished Dissertation Award in 2013, and a VMWare Graduate Fellowship in 2011. His co-authored papers won the best student paper finalist at SC 2016, and the best paper at ASPLOS 2011.