Seminars & Meetings | Abstracts

Thursday, March 18, 2010

Levine 307, 12:15 p.m.

Sebastian Burckhardt
Microsoft Research
A Randomized Scheduler with Probabilistic Guarantees of Finding Bugs


We present a randomized scheduler for finding concurrency bugs. Like current stress-testing methods, it repeatedly runs a given test program with supplied inputs. However, it improves on stress-testing by finding buggy schedules more effectively and by quantifying the probability of missing concurrency bugs. Key to its design is the characterization of the depth of a concurrency bug as the minimum number of scheduling constraints required to find it. In a single run of a program with n threads and k steps, our scheduler detects a concurrency bug of depth d with probability at least 1/{nk^{d-1}}. We hypothesize that in practice, many concurrency bugs (including well-known types such as ordering errors, atomicity violations, and deadlocks) have small bug-depths, and we confirm the efficiency of our schedule randomization by detecting previously unknown and known concurrency bugs in several production-scale concurrent programs. The talk is based on ASPLOS 2010 paper available here.