NASA Logo

NTRS

NTRS - NASA Technical Reports Server

Back to Results
RACER: Effective Race Detection Using AspectJThe limits of coding with joint constraints on detected and undetected error rates Programming errors occur frequently in large software systems, and even more so if these systems are concurrent. In the past, researchers have developed specialized programs to aid programmers detecting concurrent programming errors such as deadlocks, livelocks, starvation and data races. In this work we propose a language extension to the aspect-oriented programming language AspectJ, in the form of three new built-in pointcuts, lock(), unlock() and may be Shared(), which allow programmers to monitor program events where locks are granted or handed back, and where values are accessed that may be shared amongst multiple Java threads. We decide thread-locality using a static thread-local objects analysis developed by others. Using the three new primitive pointcuts, researchers can directly implement efficient monitoring algorithms to detect concurrent programming errors online. As an example, we expose a new algorithm which we call RACER, an adoption of the well-known ERASER algorithm to the memory model of Java. We implemented the new pointcuts as an extension to the Aspect Bench Compiler, implemented the RACER algorithm using this language extension and then applied the algorithm to the NASA K9 Rover Executive. Our experiments proved our implementation very effective. In the Rover Executive RACER finds 70 data races. Only one of these races was previously known.We further applied the algorithm to two other multi-threaded programs written by Computer Science researchers, in which we found races as well.
Document ID
20110013193
Acquisition Source
Jet Propulsion Laboratory
Document Type
Conference Paper
External Source(s)
Authors
Bodden, Eric
(McGill Univ. Montreal, Quebec, Canada)
Havelund, Klaus
(Jet Propulsion Lab., California Inst. of Tech. Pasadena, CA, United States)
Date Acquired
August 25, 2013
Publication Date
July 20, 2008
Subject Category
Computer Programming And Software
Meeting Information
Meeting: International Symposium on Software Testing and Analysis (ISSTA)
Location: Seattle, WA
Country: United States
Start Date: July 20, 2008
Distribution Limits
Public
Copyright
Other
Keywords
data analysis
aspect oriented programming
Java programs
data races

Available Downloads

There are no available downloads for this record.
No Preview Available