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