{"title":"A Method for Predicting Two-Variable Atomicity Violations","authors":"Zhuo Sun, Reng Zeng, Xudong He","doi":"10.1109/QRS.2018.00024","DOIUrl":null,"url":null,"abstract":"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 the large number of interleavings. The studies in recent years have mainly focused 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 either updated together consistently or accessed together to avoid inconsistent update or reading. This paper presents a method for predicting two-variable atomicity violation, based on access correlation between variables and atomicity violation pattern of variable accesses, including algorithms to infer access correlation between variables and to predict atomicity violation using model checking. The effectiveness of our method is evaluated with several real-world systems.","PeriodicalId":114973,"journal":{"name":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","volume":"249 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/QRS.2018.00024","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
Abstract
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 the large number of interleavings. The studies in recent years have mainly focused 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 either updated together consistently or accessed together to avoid inconsistent update or reading. This paper presents a method for predicting two-variable atomicity violation, based on access correlation between variables and atomicity violation pattern of variable accesses, including algorithms to infer access correlation between variables and to predict atomicity violation using model checking. The effectiveness of our method is evaluated with several real-world systems.