Automatic Repair of Concurrency Bugs

by Jeremy S. Bradbury, Kevin Jalbert

Abstract

Bugs in concurrent software are difficult to identify and fix since they may only exhibit abnormal behaviour on certain thread interleavings. We propose the use of genetic programming to incrementally create a solution that fixes a concurrency bug automatically. Bugs in a concurrent program are fixed by iteratively mutating the program and evaluating each mutation using a fitness function that compares the new version of the program with a previous version. We propose three types of mutation operators that can fix concurrency bugs: synchronize an unprotected shared resource, expand synchronization regions to include unprotected source code, and interchanging nested lock objects.

Bibliographic Information [Bibtex format]

@inproceedings{BJ10,
Author = {Jeremy S. Bradbury and Kevin Jalbert},
Booktitle = {Proc. of the 2nd International Symposium on Search Based Software Engineering (SSBSE 2010) - Fast Abstacts},
Month = {Sept.},
Title = {Automatic Repair of Concurrency Bugs},
Year = {2010}}

Paper: [PDF]   Presentation: [PDF]

Presentation