| | |
Summary: Finding Concurrency Bugs with
Context-Aware Communication Graphs
Brandon Lucia Luis Ceze
Department of Computer Science and Engineering, University of Washington
{blucia0a,luisceze}@cs.washington.edu
http://sampa.cs.washington.edu
ABSTRACT
Incorrect thread synchronization often leads to concurrency bugs
that manifest nondeterministically and are difficult to detect and fix.
Past work on detecting concurrency bugs has addressed the general
problem in an ad-hoc fashion, focusing mostly on data races and
atomicity violations.
Using graphs to represent a multithreaded program execution is
very natural, nodes represent static instructions and edges repre-
sent communication via shared memory. In this paper we make the
fundamental observation that such basic context-oblivious graphs
do not encode enough information to enable accurate bug detec-
tion. We propose context-aware communication graphs, a new kind
of communication graph that encodes global ordering information
by embedding communication contexts. We then build Bugaboo,
|