Publications in Scientific Journals:
M. Tabaei Befrouei, C. Wang, G. Weissenbacher:
"Abstraction and mining of traces to explain concurrency bugs";
Formal Methods in System Design,
We propose an automated mining-based method for explaining concurrency bugs. We use a data mining technique called sequential pattern mining to identify problematic sequences of concurrent read and write accesses to the shared memory of a multithreaded program. Our technique does not rely on any characteristics specific to one type of concurrency bug, thus providing a general framework for concurrency bug explanation. In our method, given a set of concurrent execution traces, we first mine sequences that frequently occur in failing traces and then rank them based on the number of their occurrences in passing traces. We consider the highly ranked sequences of events that occur frequently only in failing traces an explanation of the system failure, as they can reveal its causes in the execution traces. Since the scalability of sequential pattern mining is limited by the length of the traces, we present an abstraction technique which shortens the traces at the cost of introducing spurious explanations. Spurious as well as misleading explanations are then eliminated by a subsequent filtering step, helping the programmer to focus on likely causes of the failure. We validate our approach using a number of case studies, including synthetic as well as real-world bugs.
"Official" electronic version of the publication (accessed through its Digital Object Identifier - DOI)
Project Head Georg Weissenbacher:
Heisenbugs: Auffindung und Erklärung
Created from the Publication Database of the Vienna University of Technology.