Error Invariants for Concurrent Traces
Andreas Holzer, Daniel Schwartz-Narbonne, Mitra Tabaei Befrouei, Georg, Weissenbacher, Thomas Wies

TL;DR
This paper extends error invariants to concurrent programs, incorporating hazard information to improve debugging by enabling more precise slicing of error traces, thus aiding in identifying root causes of concurrency bugs.
Contribution
It introduces a generalized approach to error invariants for concurrent traces, including hazard details, and develops a slicing tool that effectively isolates root causes of concurrency errors.
Findings
Hazard-sensitive slicing reduces trace length significantly.
The approach maintains root causes of concurrency bugs.
Evaluated on real-world concurrency bug benchmarks.
Abstract
Error invariants are assertions that over-approximate the reachable program states at a given position in an error trace while only capturing states that will still lead to failure if execution of the trace is continued from that position. Such assertions reflect the effect of statements that are involved in the root cause of an error and its propagation, enabling slicing of statements that do not contribute to the error. Previous work on error invariants focused on sequential programs. We generalize error invariants to concurrent traces by augmenting them with additional information about hazards such as write-after-write events, which are often involved in race conditions and atomicity violations. By providing the option to include varying levels of details in error invariants-such as hazards and branching information-our approach allows the programmer to systematically analyze…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsRadiation Effects in Electronics · Parallel Computing and Optimization Techniques · Software Testing and Debugging Techniques
