A Lightweight Approach to Computing Message Races with an Application to Causal-Consistent Reversible Debugging
This work addresses debugging challenges for developers of message-passing concurrent systems, specifically in Erlang, but it is incremental as it builds on existing reversible debugging frameworks.
The paper tackles the problem of identifying message races in concurrent executions by introducing a lightweight trace formalism, and applies it to enable causal-consistent reversible debugging for Erlang programs.
This paper presents a lightweight formalism (a trace) to model message-passing concurrent executions where some common common problems can be identified, like lost or delayed messages, some forms of deadlock, etc. In particular, we consider (potential) message races that can be useful to analyze alternative executions. We consider a particular application for our developments in the context of a causal-consistent reversible debugging framework for Erlang programs