EECS Spring 2015 Seminar

Murali Krishna
Synthesizing Racy Tests
Indian Institute of Science, Bangalore
White 411
May 21, 2015

Subtle concurrency errors in multithreaded libraries that arise because of incorrect or inadequate synchronization are often difficult to pinpoint precisely using only static techniques. On the other hand, the effectiveness of dynamic race detectors is critically dependent on multithreaded test suites whose execution can be used to identify and trigger races. Usually, such multithreaded tests need to invoke a specific combination of methods with objects involved in the invocations being shared appropriately to expose a race. Without a priori knowledge of the race, construction of such tests can be challenging.

In this talk, I will present a lightweight and scalable technique for synthesizing precisely these kinds of tests.  Given a multi-threaded library and a sequential test suite, I will describe a fully automated analysis that examines sequential execution traces, and produces as its output a concurrent client program that drives shared objects via library method calls to states conducive for triggering a race. Experimental results on a variety of well-tested Java libraries yield 101 synthesized multithreaded tests in less than four minutes. Analyzing the execution of these tests using an off-the-shelf race detector reveals 187 harmful races, including several previously unreported ones.

This is joint work with Ms. Malavika Samak (PhD student at IISc) and Prof. Suresh Jagannathan (Purdue University) and will appear in PLDI 2015.


Murali Krishna Ramanathan is an Assistant Professor in CSA at Indian Institute of Science, Bangalore. His research interests broadly span the areas of software engineering and programming languages. Previously, he was affiliated with Coverity and helped build program analysis tools that are widely used in the industry. He learnt the tricks of the trade from Professors Suresh Jagannathan and Ananth Grama at Purdue University.