Florida International University
Zhuo Sun is a Ph.D. candidate in School of Computing and Information Science at Florida International University. She received her Master’s degree in Software Engineering from Sun Yat-sen University in 2005, and Master’s degree in Telecommunications and Networking from Florida International University in 2011. While a part-time Ph.D. student, she is working at Motorola Solutions as a software automation engineer to improve software reliability through automated testing. Her research interests lie in the areas of software reliability and program analysis. Her research aims at making concurrent systems more reliable through dynamic and predictive analysis at the code level.
As the most common non-deadlock concurrency bugs, atomicity violations are extremely hard to detect during testing since the exhaustive testing of a multi-threaded program is impossible because of a large number of interleavings. The studies recent years have been focusing on single-variable atomicity violation. However, those methods are unable to predict or find atomicity violations with multiple variables involved. Many variables are inherently correlated and need to be accessed together with their correlated peers in a consistent manner. These variables need to be accessed together to avoid multi-variable atomicity violation. This work presents a method for predicting multi-variable atomicity violation, based on access correlation between variables and atomicity violation patterns of variable accesses: 1) this work presents algorithms to infer access correlation between variables; 2) then predict atomicity violation bugs involving a pair of threads accessing correlated variables using model checking. The method can predict atomicity violation missed by other related works in multi-threaded programs. Beyond the concurrency bugs in multi-threaded systems, there are concurrency bugs in distributed systems. With more and more large scale distributed systems, there are billions of end users relying on the correctness of the distributed systems. More than 60% of distributed concurrency bugs are triggered by a single untimely message delivery that commits order violation or atomicity violation.