2016 - 2021
Title: CAREER: Scalable and Maximal Concurrency DebuggingConcurrency related software defects are among the most expensive and dangerous in practice, and have become a major threat to the reliability and security of safety-critical systems and the nation's critical infrastructure. The intellectual merits of this project are to develop new theoretical and algorithmic advances, and to build practical automated tools for debugging concurrent software, which will enable more concurrency bugs easier to detect and understand, and safer and faster to fix. The project's broader significance and importance are to help produce more reliable, secure, and economical software systems and infrastructure, remove concurrency related vulnerabilities, and strengthen STEM education on software debugging, which is a critical, but lacking aspect of today's software engineering education.This project will investigate solutions to four major research questions on concurrency debugging. (1) Reproduction: How to reproduce failures in long running concurrent programs with minimal runtime perturbation and overhead? How to reproduce failures in concurrent programs running on commodity hardware exhibiting relaxed-memory behaviors? (2) Detection: How to detect concurrency bugs at the maximum ability and with no false alarm, even under limited observation, e.g., when missing log events? (3) Understanding: How to accurately identify the failure's root cause? How to effectively simplify concurrency bugs and speed up their reproduction? (4) Fixing & Validation: How to fix concurrency bugs without introducing deadlocks or unnecessary performance degradation? How to effectively validate the correctness of fixes?