We propose a constraint based method for repairing bugs associated with the use of emerging persistent memory (PM) in application software. Our method takes a program execution trace and the violated property as input and returns a suggested repair, which is a combination of inserting new PM instructions and reordering these instructions to eliminate the property violation. Compared with the state-of-the-art approach, our method has three advantages. First, it can repair both durability and crash consistency bugs, whereas the state-of-the-art approach can only repair the relatively-simple durability bugs. Second, our method can discover new repair strategies instead of relying on repair strategies hard-coded into the repair tool. Third, our method uses a novel symbolic encoding to model PM semantics, which allows our symbolic analysis to be more efficient than the explicit enumeration of possible scenarios and thus explore a large number of repairs quickly. We have evaluated our method on benchmark programs from the well-known Intel PMDK library as well as real applications such as Memcached and Recipe. The results show that our method can successfully repair all of the 35 known bugs in these benchmarks, while the state-of-the-art approach cannot repair any of the crash consistency bugs.
Wed 17 AprDisplayed time zone: Lisbon change
14:00 - 15:30 | Program Repair 2Journal-first Papers / Research Track / Software Engineering in Practice at Pequeno Auditório Chair(s): Xiang Gao Beihang University | ||
14:00 15mTalk | Practical Program Repair via Preference-based Ensemble Strategy Research Track Wenkang Zhong State Key Laboratory for Novel Software and Technology, Nanjing University, 22 Hankou Road, Nanjing, China, Chuanyi Li Nanjing University, Kui Liu Huawei, Tongtong Xu Huawei, Jidong Ge Nanjing University, Tegawendé F. Bissyandé University of Luxembourg, Bin Luo Nanjing University, Vincent Ng Human Language Technology Research Institute, University of Texas at Dallas, Richardson, TX 75083-0688 | ||
14:15 15mTalk | Learning and Repair of Deep Reinforcement Learning Policies from Fuzz-Testing Data Research Track Martin Tappler TU Graz; Silicon Austria Labs, Andrea Pferscher Institute of Software Technology, Graz University of Technology , Bernhard Aichernig Graz University of Technology, Bettina Könighofer Graz University of Technology | ||
14:30 15mTalk | BinAug: Enhancing Binary Similarity Analysis with Low-Cost Input Repairing Research Track WONG Wai Kin Hong Kong University of Science and Technology, Huaijin Wang Hong Kong University of Science and Technology, Li Zongjie Hong Kong University of Science and Technology, Shuai Wang The Hong Kong University of Science and Technology | ||
14:45 15mTalk | Constraint Based Program Repair for Persistent Memory Bugs Research Track | ||
15:00 15mTalk | User-Centric Deployment of Automated Program Repair at Bloomberg Software Engineering in Practice David Williams University College London, James Callan UCL, Serkan Kirbas Bloomberg LP, Sergey Mechtaev University College London, Justyna Petke University College London, Thomas Prideaux-Ghee Bloomberg LP, Federica Sarro University College London | ||
15:15 7mTalk | AIBugHunter: A Practical Tool for Predicting, Classifying and Repairing Software Vulnerabilities Journal-first Papers Michael Fu Monash University, Kla Tantithamthavorn Monash University, Trung Le Monash University, Australia, Yuki Kume Monash University, Van Nguyen Monash University, Dinh Phung Monash University, Australia, John Grundy Monash University Link to publication DOI Pre-print |