Authors
Pavol Černý, Thomas A Henzinger, Arjun Radhakrishna, Leonid Ryzhyk, Thorsten Tarrach
Publication date
2014/7/18
Book
International conference on computer aided verification
Pages
568-584
Publisher
Springer International Publishing
Description
While fixing concurrency bugs, program repair algorithms may introduce new concurrency bugs. We present an algorithm that avoids such regressions. The solution space is given by a set of program transformations we consider in for repair process. These include reordering of instructions within a thread and inserting atomic sections. The new algorithm learns a constraint on the space of candidate solutions, from both positive examples (error-free traces) and counterexamples (error traces). From each counterexample, the algorithm learns a constraint necessary to remove the errors. From each positive examples, it learns a constraint that is necessary in order to prevent the repair from turning the trace into an error trace. We implemented the algorithm and evaluated it on simplified Linux device drivers with known bugs.
Total citations
20142015201620172018201920202021202220231661312151
Scholar articles
P Černý, TA Henzinger, A Radhakrishna, L Ryzhyk… - International conference on computer aided verification, 2014