TY - GEN
T1 - Radius aware probabilistic testing of deadlocks with guarantees
AU - Cai, Yan
AU - Yang, Zijiang
N1 - Publisher Copyright:
© 2016 ACM.
PY - 2016/8/25
Y1 - 2016/8/25
N2 - 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.
AB - 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.
KW - Bug radius
KW - Deadlock
KW - Multithreaded program
KW - Random testing
UR - https://www.scopus.com/pages/publications/84989159528
U2 - 10.1145/2970276.2970307
DO - 10.1145/2970276.2970307
M3 - 会议稿件
AN - SCOPUS:84989159528
T3 - ASE 2016 - Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering
SP - 356
EP - 367
BT - ASE 2016 - Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering
A2 - Khurshid, Sarfraz
A2 - Lo, David
A2 - Apel, Sven
PB - Association for Computing Machinery, Inc
T2 - 31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016
Y2 - 3 September 2016 through 7 September 2016
ER -