TY - GEN
T1 - Persuasive prediction of concurrency access anomalies
AU - Huang, Jeff
AU - Zhang, Charles
PY - 2011
Y1 - 2011
N2 - Predictive analysis is a powerful technique that exposes concurrency bugs in un-exercised program executions. However, current predictive analysis approaches lack the persuasiveness property as they offer little assistance in helping programmers fully understand the execution history that triggers the predicted bugs. We present a persuasive bug prediction technique as well as a prototype tool, PECAN, for detecting general access anomalies (AAs) in concurrent programs. The main characteristic of PECAN is that, in addition to predict AAs in a more general way, it generates "bug hatching clips" that deterministically instruct the input program to exercise the predicted AAs. The key ingredient of PECAN is an efficient offline schedule generation algorithm, with proof of the soundness, that guarantees to generate a feasible schedule for every real AA in programs that use locks in a nested way. We evaluate PECAN using twenty-two multi-threaded subjects including six large concurrent systems, and our experiments demonstrate that PECAN is able to effectively predict and deterministically expose real AAs. Several serious and previously unknown bugs in large open source concurrent systems were also revealed in our experiments.
AB - Predictive analysis is a powerful technique that exposes concurrency bugs in un-exercised program executions. However, current predictive analysis approaches lack the persuasiveness property as they offer little assistance in helping programmers fully understand the execution history that triggers the predicted bugs. We present a persuasive bug prediction technique as well as a prototype tool, PECAN, for detecting general access anomalies (AAs) in concurrent programs. The main characteristic of PECAN is that, in addition to predict AAs in a more general way, it generates "bug hatching clips" that deterministically instruct the input program to exercise the predicted AAs. The key ingredient of PECAN is an efficient offline schedule generation algorithm, with proof of the soundness, that guarantees to generate a feasible schedule for every real AA in programs that use locks in a nested way. We evaluate PECAN using twenty-two multi-threaded subjects including six large concurrent systems, and our experiments demonstrate that PECAN is able to effectively predict and deterministically expose real AAs. Several serious and previously unknown bugs in large open source concurrent systems were also revealed in our experiments.
KW - access anomaly
KW - bug detection
KW - persuasive
UR - https://openalex.org/W1977476643
UR - https://www.scopus.com/pages/publications/80051919552
U2 - 10.1145/2001420.2001438
DO - 10.1145/2001420.2001438
M3 - Conference Paper published in a book
SN - 9781450305624
T3 - 2011 International Symposium on Software Testing and Analysis, ISSTA 2011 - Proceedings
SP - 144
EP - 154
BT - 2011 International Symposium on Software Testing and Analysis, ISSTA 2011 - Proceedings
T2 - 20th International Symposium on Software Testing and Analysis, ISSTA 2011
Y2 - 17 July 2011 through 21 July 2011
ER -