usenix conference policies
You are here
Life, Death, and the Critical Transition: Finding Liveness Bugs in Systems Code
Modern software model checkers find safety violations: breaches where the system enters some bad state. However, we argue that checking liveness properties offers both a richer and more natural way to search for errors, particularly in complex concurrent and distributed systems. Liveness properties specify desirable system behaviors which must be satisfied eventually, but are not always satisfied, perhaps as a result of failure or during system initialization. Existing software model checkers cannot verify liveness because doing so requires finding an infinite execution that does not satisfy a liveness property. We present heuristics to find a large class of liveness violations and the critical transition of the execution. The critical transition is the step in an execution that moves the system from a state that does not currently satisfy some liveness property—but where recovery is possible in the future—to a dead state that can never achieve the liveness property. Our software model checker, MACEMC, isolates complex liveness errors in our implementations of PASTRY, CHORD, a reliable transport protocol, and an overlay tree.
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.
author = {Charles Killian and James W. Anderson and Ranjit Jhala and Amin Vahdat},
title = {Life, Death, and the Critical Transition: Finding Liveness Bugs in Systems Code },
booktitle = {4th USENIX Symposium on Networked Systems Design \& Implementation (NSDI 07)},
year = {2007},
address = {Cambridge, MA},
url = {https://www.usenix.org/conference/nsdi-07/life-death-and-critical-transition-finding-liveness-bugs-systems-code},
publisher = {USENIX Association},
month = apr
}
connect with us