Katherine E. Coons, Madanlal Musuvathi, and Sebastian Burckhardt
11 January 2010
As concurrent programming becomes prevalent, software providers
are investing in concurrency libraries to improve programmer productivity.
Concurrency libraries improve productivity by hiding
error-prone, low-level synchronization from programmers and providing
higher-level concurrent abstractions. Testing such libraries
is difficult, however, because concurrency failures often manifest
only under particular scheduling circumstances. Current best testing
practices are often inadequate: heuristic-guided fuzzing is not
systematic, systematic schedule enumeration does not find bugs
quickly, and stress testing is neither systematic nor fast.
To address these shortcomings, we propose a prioritized search
technique called GAMBIT that combines the speed benefits of
heuristic-guided fuzzing with the soundness, progress, and reproducibility
guarantees of stateless model checking. GAMBIT
combines known techniques such as partial-order reduction and
preemption-bounding with a generalized best-first search framework
that prioritizes schedules likely to expose bugs. We evaluate
GAMBIT’s effectiveness on newly released concurrency libraries
for Microsoft’s .NET framework. Our experiments show
that GAMBIT finds bugs more quickly than prior stateless model
checking techniques without compromising coverage guarantees
In Proceedings of the 15th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming
Publisher Association for Computing Machinery, Inc.
Copyright © 2007 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or email@example.com. The definitive version of this paper can be found at ACM’s Digital Library --http://www.acm.org/dl/.