Abstract
Concurrency bugs only occur under certain interleaving. Existing randomized techniques are usually ineffective. PCT innovatively generates scheduling, before executing a program, based on pri-orities and priority change points. Hence, it provides a probabilis-tic guarantee to trigger concurrency bugs. PCT randomly selects priority change points among all events, which might be effective for non-deadlock concurrency bugs. However, deadlocks usually involve two or more threads and locks, and require more ordering constraints to be triggered. We interestingly observe that, every two events of a deadlock usually occur within a short range. We generally formulate this range as the bug Radius, to denote the max distance of every two events of a concurrency bug. Based on the bug radius, we propose RPro (Radius aware Probabilistic testing) for triggering deadlocks. Unlike PCT , RPro selects priori-ty change points within the radius of the targeted deadlocks but not among all events. Hence, it guarantees larger probabilities to trigger deadlocks. We have implemented RPro and PCT and eval-uated them on a set of real-world benchmarks containing 10 unique deadlocks. The experimental results show that RPro trig-gered all deadlocks with higher probabilities (i.e., 7.7x times larger on average) than that by PCT . We also evaluated RPro with radius varying from 1 to 150 (or 300). The result shows that the radius of a deadlock is much smaller (i.e., from 2 to 114 in our experiment) than the number of all events. This further confirms our observation and makes RPro meaningful in practice.
Author supplied keywords
Cite
CITATION STYLE
Cai, Y., & Yang, Z. (2016). Radius aware probabilistic testing of deadlocks with guarantees. In ASE 2016 - Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering (pp. 356–367). Association for Computing Machinery, Inc. https://doi.org/10.1145/2970276.2970307
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.