Finding Concurrency Errors in Sequential Code—OS-level, In-vivo Model Checking of Process Races

Oren Laadan, Chia-che Tsai, Nicolas Viennot, Chris Blinn, Peter Senyao Du, Junfeng Yang, Jason Nieh

Proceedings of the 131th USENIX workshop on Hot topics in operating systems (HOTOS ’11), May, 2011


While thread races have drawn huge attention from the research community, little has been done for process races, where multiple, possibly sequential, processes access a shared resource, such as a file, without proper synchronization. We present a preliminary study of real process races and show that they are numerous, dangerous, and difficult to detect. To address this problem, we present the design of RACEPRO, an in-vivo model checking system for automatically detecting process races in deployed systems, along with preliminary results from a RACEPRO prototype. To the best of our knowledge, we are the first to study real process races, and RACEPRO is the first system to detect them.



Columbia University Department of Computer Science