Asynchronous Programming, Analysis and Testing with P#
Speaker: Akash Lal, Researcher, Microsoft Research, Bangalore
Date/Time: 25 February 2016, Thursday, 11:00 AM to 12:00 PM
Venue: SR2, COM1-02-04
Chaired by: Saxena Prateek, School of Computing (firstname.lastname@example.org)
Refreshment provided; Limited seats: 40 pax; First come first serve
Programming efficient asynchronous systems is challenging because it can often be hard to express the design declaratively, or to defend against interleaving-dependent bugs such as data races and other assertion violations. Previous work has only addressed these challenges individually, either by designing a new declarative language, or a new data race detection tool, or a new testing technique. We present P#, a language for high-reliability asynchronous programming co-designed with a static analysis and testing infrastructure. We will describe our experience using P# and its effectiveness in finding bugs in production systems. For example, in a collaboration between MSR and Azure Storage, the team successfully uncovered a subtle data replication bug in the Azure Storage system using P#. The bug was due to a rare distributed race condition, which made it very difficult to identify, reproduce and troubleshoot using conventional testing methods.
Akash Lal is a researcher at Microsoft Research, Bangalore. His interests are in the area of programming languages and program analysis, with a focus on building bug-finding tools for concurrent programs. He joined Microsoft in 2009 after completing his PhD from University of Wisconsin-Madison under the supervision of Prof. Thomas Reps. For his thesis, he received the Outstanding Graduate Researcher Award, given by the Computer Sciences Department of UW-Madison, and the ACM SIGPLAN Outstanding Doctoral Dissertation Award. He completed his Bachelor’s degree from IIT-Delhi in 2003.