Search NASASearch

NASA NTRS · 20050010122

Using Block-local Atomicity to Detect Stale-value Concurrency Errors

Abstract

Data races do not cover all kinds of concurrency errors. This paper presents a data-flow-based technique to find stale-value errors, which are not found by low-level and high-level data race algorithms. Stale values denote copies of shared data where the copy is no longer synchronized. The algorithm to detect such values works as a consistency check that does not require any assumptions or annotations of the program. It has been implemented as a static analysis in JNuke. The analysis is sound and requires only a single execution trace if implemented as a run-time checking algorithm. Being based on an analysis of Java bytecode, it encompasses the full program semantics, including arbitrarily complex expressions. Related techniques are more complex and more prone to over-reporting.

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

Artho, Cyrille, Havelund, Klaus, Biere, Armin. 2004-01-01. Using Block-local Atomicity to Detect Stale-value Concurrency Errors. https://ntrs.nasa.gov/citations/20050010122

Cite the original work for its findings. Save a collection to share your selection of sources.