Abstract
Process-level races are endemic in modern systems. These races are difficult to debug because they are sensitive to execution events such as interrupts and scheduling. Unless a process interleaving that can result in the race can be found, it cannot be reproduced and cannot be corrected. In practice, however, the number of interleavings that can occur among processes in practice is large, and the patterns of interleavings can be complex. Thus, approaches for reproducing process-level races to date are often ineffective. In this paper, we present RRF, a race reproduction framework that can help software engineers reproduce reported process-level races, enabling them to potentially debug these races. RRF performs a hybrid analysis by leveraging existing static program analysis tools, dynamic kernel event reporting tools, and yield points to provide the observability and controllability needed to reproduce races. We conducted an empirical study to evaluate RRF, our results show that RRF can be effective for reproducing races.
Original language | English |
---|---|
Title of host publication | Proceedings - 2016 IEEE 27th International Symposium on Software Reliability Engineering, ISSRE 2016 |
Pages | 162-172 |
Number of pages | 11 |
ISBN (Electronic) | 9781467390019 |
DOIs | |
State | Published - Dec 5 2016 |
Event | 27th IEEE International Symposium on Software Reliability Engineering, ISSRE 2016 - Ottawa, United States Duration: Oct 23 2016 → Oct 27 2016 |
Publication series
Name | Proceedings - International Symposium on Software Reliability Engineering, ISSRE |
---|---|
ISSN (Print) | 1071-9458 |
Conference
Conference | 27th IEEE International Symposium on Software Reliability Engineering, ISSRE 2016 |
---|---|
Country/Territory | United States |
City | Ottawa |
Period | 10/23/16 → 10/27/16 |
Bibliographical note
Publisher Copyright:© 2016 IEEE.
ASJC Scopus subject areas
- Software
- Safety, Risk, Reliability and Quality