Withdraw
Loading…
Keshmesh: Bringing Advanced Static Analysis to Concurrency Bug Pattern Detectors
Vakilian, Mohsen; Negara, Stas; Tasharofi, Samira; Johnson, Ralph E.
Loading…
Permalink
https://hdl.handle.net/2142/44837
Description
- Title
- Keshmesh: Bringing Advanced Static Analysis to Concurrency Bug Pattern Detectors
- Author(s)
- Vakilian, Mohsen
- Negara, Stas
- Tasharofi, Samira
- Johnson, Ralph E.
- Issue Date
- 2013-05
- Keyword(s)
- bug
- pattern
- detector
- fixer
- concurrency
- parallelism
- static analysis
- program analysis
- Abstract
- Bug patterns are coding idioms that may make the code less maintainable or turn into bugs in future. The state-of-the-art tools for detecting concurrency bug patterns (CBPs) perform simple, intraprocedural analyses. While this simplicity makes the analysis fast, it does not provide protection against CBPs that involve aliasing or multiple methods. This paper introduces a practical and extensible framework, Keshmesh, which employs advanced static analysis for detecting CBPs. Keshmesh builds upon the points-to analysis of WALA, a static analysis framework, and the user interface of FindBugs, a popular bug pattern detection tool. Keshmesh detects five CBPs using interprocedural analyses and fixes two of them. The challenges in automatic detection of these CBPs include reducing the rate of false positives, scaling to large projects, and accurate propagation of unsafe accesses along the call graph up to synchronization constructs. Keshmesh found 40 previously unknown CBP instances and only 12 false positives in six open-source projects. Programmers fixed 11 of the 20 issues we reported. These results show that Keshmesh is applicable to large projects, finds CBPs that programmers want to fix, and reports few false positives.
- Type of Resource
- text
- Language
- en
- Permalink
- http://hdl.handle.net/2142/44837
- Copyright and License Information
- Copyright is held by the author/owner(s).
Owning Collections
Manage Files
Loading…
Edit Collection Membership
Loading…
Edit Metadata
Loading…
Edit Properties
Loading…
Embargoes
Loading…