TY - GEN
T1 - Automatically verifying and reproducing event-based races in android apps
AU - Hu, Yongjian
AU - Neamtiu, Iulian
AU - Alavi, Arash
N1 - Publisher Copyright:
© 2016 ACM.
PY - 2016/7/18
Y1 - 2016/7/18
N2 - Concurrency has been a perpetual problem in Android apps, mainly due to event-based races. Several event-based race detectors have been proposed, but they produce false positives, cannot reproduce races, and cannot distinguish between benign and harmful races. To address these issues, we introduce a race verification and reproduction approach named ERVA. Given a race report produced by a race detector, ERVA uses event dependency graphs, event flipping, and replay to verify the race and determine whether it is a false positive, or a true positive; for true positives, ERVA uses state comparison to distinguish benign races from harmful races. ERVA automatically produces an event schedule that can be used to deterministically reproduce the race, so developers can fix it. Experiments on 16 apps indicate that only 3% of the races reported by race detectors are harmful, and that ERVA can verify an app in 20 minutes on average.
AB - Concurrency has been a perpetual problem in Android apps, mainly due to event-based races. Several event-based race detectors have been proposed, but they produce false positives, cannot reproduce races, and cannot distinguish between benign and harmful races. To address these issues, we introduce a race verification and reproduction approach named ERVA. Given a race report produced by a race detector, ERVA uses event dependency graphs, event flipping, and replay to verify the race and determine whether it is a false positive, or a true positive; for true positives, ERVA uses state comparison to distinguish benign races from harmful races. ERVA automatically produces an event schedule that can be used to deterministically reproduce the race, so developers can fix it. Experiments on 16 apps indicate that only 3% of the races reported by race detectors are harmful, and that ERVA can verify an app in 20 minutes on average.
KW - Event flipping
KW - Event-based races
KW - Google android
KW - Happens-before relation
KW - Race verification
UR - http://www.scopus.com/inward/record.url?scp=84984889358&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84984889358&partnerID=8YFLogxK
U2 - 10.1145/2931037.2931069
DO - 10.1145/2931037.2931069
M3 - Conference contribution
AN - SCOPUS:84984889358
T3 - ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis
SP - 377
EP - 388
BT - ISSTA 2016 - Proceedings of the 25th International Symposium on Software Testing and Analysis
A2 - Roychoudhury, Abhik
A2 - Zeller, Andreas
PB - Association for Computing Machinery, Inc
T2 - 25th International Symposium on Software Testing and Analysis, ISSTA 2016
Y2 - 18 July 2016 through 20 July 2016
ER -