Affiliation:
1. University of Wisconsin -- Madison
2. University of Wisconsin -- Madison and GrammaTech, Inc.
Abstract
Multicore technology is making concurrent programs increasingly pervasive. Unfortunately, it is difficult to deliver reliable concurrent programs, because of the huge and nondeterministic interleaving space. In reality, without the resources to thoroughly check the interleaving space, critical concurrency bugs can slip into production versions and cause failures in the field. Approaches to making the best use of the limited resources and exposing severe concurrency bugs before software release would be desirable.
Unlike previous work that focuses on bugs caused by specific interleavings (e.g., races and atomicity violations), this article targets concurrency bugs that result in one type of severe effect: program crashes. Our study of the error-propagation process of real-world concurrency bugs reveals a common pattern (50% in our nondeadlock concurrency bug set) that is highly correlated with program crashes. We call this pattern concurrency-memory bugs: buggy interleavings directly cause memory bugs (NULL-pointer-dereferences, dangling-pointers, buffer-overflows, uninitialized-reads) on shared memory objects.
Guided by this study, we built ConMem to monitor program execution, analyze memory accesses and synchronizations, and predictively detect these common and severe concurrency-memory bugs. We also built a validator,ConMem-v, to automatically prune false positives by enforcing potential bug-triggering interleavings.
We evaluated ConMem using 7 open-source programs with 10 real-world concurrency bugs. ConMem detects more tested bugs (9 out of 10 bugs) than a lock-set-based race detector and an unserializable-interleaving detector, which detect 4 and 6 bugs, respectively, with a false-positive rate about one tenth of the compared tools. ConMem-v further prunes out all the false positives. ConMem has reasonable overhead suitable for development usage.
Funder
Office of Naval Research
U.S. Army Research Laboratory
Air Force Research Laboratory
Division of Computing and Communication Foundations
Claire Booth Luce faculty fellowship
Publisher
Association for Computing Machinery (ACM)
Reference67 articles.
1. Apache Bugzilla. How important is the bug? http://issues.apache.org/bugwritinghelp.html. Apache Bugzilla. How important is the bug? http://issues.apache.org/bugwritinghelp.html.
2. CodeSurfer/x86—A Platform for Analyzing x86 Executables
3. Grace
4. Efficient chaotic iteration strategies with widenings
5. Bugzilla@Mozilla. A bug’s life cycle. https://bugzilla.mozilla.org/page.cgi?id=fields.html#severity. Bugzilla@Mozilla. A bug’s life cycle. https://bugzilla.mozilla.org/page.cgi?id=fields.html#severity.
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献