Nuno de Ferraz Almeida e Peixoto Machado


Cooperative Concurrency Debugging


Tese submetida para provas de Doutoramento em Engenharia Informática e de Computadores, Instituto Superior Técnico, Universidade de Lisboa.

Abstract

The inherent complexity of concurrent programs, due to the variation of the ordering of program events across executions, opens the door for various types of concurrency bugs. Concurrency bugs are notoriously hard to debug and fix. First, the non-deterministic nature of concurrency bugs makes their reproduction challenging. Second, it is hard to isolate the root cause of a concurrency error due to the large number of thread operations and interactions among them in failing schedules. Finally, failing schedules are difficult to expose because they usually result from very specific thread interleavings, which manifest rarely. As a consequence, concurrent programs are often shipped with latent concurrency bugs that can originate failures in production and degrade the systems' reliability. This thesis addresses these three challenges related to concurrency bugs, focusing on shared-memory multithreaded programs. In particular, we develop: i) A technique to replay concurrency bugs by combining cooperative partial logging and in-house statistical analysis; ii) A technique based on differential analysis of failing and non-failing schedules to automatically diagnose the root cause of failures in concurrent programs. iii) A technique to expose latent concurrency bugs in deployed programs by exploring variations in the schedule and control-flow behavior of non-failing executions. We have build prototypes that implement all the aforementioned techniques. Through an extensive evaluation, we show that our tools are effective, efficient, and compare favorably to previous state-of-the-art solutions.

Selected Publications

Cooperative Concurrency Debugging
Nuno de Ferraz Almeida e Peixoto Machado
PhD Thesis. Instituto Superior Técnico, Universidade de Lisboa.
June, 2016.
Available BibTeX, PhD Thesis.
Production-guided Concurrency Debugging.
N. Machado, B. Lucia, L. Rodrigues.
In Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP 2016), Barcelona, Spain, March 2016.
Concurrency Debugging with Differential Schedule Projections.
N. Machado, D. Quinta, B. Lucia, L. Rodrigues.
In ACM Transactions on Software Engineering and Methodology, Volume 25 Issue 2, April 2016.
Concurrency Debugging with Differential Schedule Projections
N. Machado, B. Lucia, L. Rodrigues.
In Proceedings of the 36th annual ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI 2015), Portland (OR), USA, June 2015.

Luís Rodrigues