Affiliation:
1. Microsoft Research, Redmond, WA, USA
2. Microsoft, Redmond, WA, USA
Abstract
Modular development of concurrent applications requires thread-safe components that behave correctly when called concurrently by multiple client threads. This paper focuses on linearizability, a specific formalization of thread safety, where all operations of a concurrent component appear to take effect instantaneously at some point between their call and return. The key insight of this paper is that if a component is intended to be deterministic, then it is possible to build an automatic linearizability checker by systematically enumerating the sequential behaviors of the component and then checking if each its concurrent behavior is equivalent to some sequential behavior.
We develop this insight into a tool called Line-Up, the first complete and automatic checker for
deterministic linearizability
. It is complete, because any reported violation proves that the implementation is not linearizable with respect to
any
sequential deterministic specification. It is automatic, requiring no manual abstraction, no manual specification of semantics or commit points, no manually written test suites, no access to source code.
We evaluate Line-Up by analyzing 13 classes with a total of 90 methods in two versions of the .NET Framework 4.0. The violations of deterministic linearizability reported by Line-Up exposed seven errors in the implementation that were fixed by the development team.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
28 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Efficient linearizability checking for actor‐based systems;Software: Practice and Experience;2023-08-22
2. Fuzzing with automatically controlled interleavings to detect concurrency bugs;Journal of Systems and Software;2022-09
3. Quantifiability: a concurrent correctness condition modeled in vector space;Computing;2022-06-07
4. Concurrent Correctness in Vector Space;Lecture Notes in Computer Science;2021
5. AggrePlay: efficient record and replay of multi-threaded programs;Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2019-08-12