Modern applications include many sources of nondeterminism, e.g.\ due to concurrency, signals, and system calls that interact with the external environment. Finding and reproducing bugs in the presence of this nondeterminism has been the subject of much prior work in three main areas: (1) controlled concurrency-testing, where a custom scheduler replaces the OS scheduler to find subtle bugs; (2) record and replay, where sources of nondeterminism are captured and logged so that a failing execution can be replayed for debugging purposes; and (3) dynamic analysis for the detection of data races. We present a dynamic analysis tool for C++ applications, tsan11rec, which brings these strands of work together by integrating controlled concurrency testing \emph{and} record and replay into the tsan11 framework for C++11 data race detection. Our novel twist on record and replay is a \emph{sparse} approach, where the sources of nondeterminism to record can be configured per application. We show that our approach is effective at finding subtle concurrency bugs in small applications; is competitive in terms of performance with the state-of-the-art record and replay tool rr on larger applications; succeeds (due to our sparse approach) in replaying the I/O-intensive Zandronum and QuakeSpasm video games, which are out of scope for rr; but (due to limitations of our sparse approach) cannot faithfully replay applications where memory layout nondeterminism significantly affects application behaviour.
Tue 25 JunDisplayed time zone: Tijuana, Baja California change
10:00 - 11:00 | Bug Finding & Testing IIPLDI Research Papers at 229AB Chair(s): Jens Palsberg University of California, Los Angeles (UCLA) | ||
10:00 20mTalk | Parser-Directed Fuzzing PLDI Research Papers Björn Mathis CISPA Helmholtz Center for Information Security, Rahul Gopinath CISPA Helmholtz Center for Information Security, Michaël Mera CISPA, Germany, Alexander Kampmann CISPA Helmholtz Center for Information Security, Matthias Höschele CISPA, Germany, Andreas Zeller Saarland University Media Attached | ||
10:20 20mTalk | Continuously Reasoning about Programs using Differential Bayesian Inference PLDI Research Papers Kihong Heo University of Pennsylvania, USA, Mukund Raghothaman University of Pennsylvania, USA, Xujie Si University of Pennsylvania, Mayur Naik University of Pennsylvania Media Attached | ||
10:40 20mTalk | Sparse Record and Replay with Controlled Scheduling PLDI Research Papers Christopher Lidbury Imperial College London, Alastair F. Donaldson Google and Imperial College London |