kirancodes.me
To Proof Maintenance & Beyond!

JRF-E: using model checking to give advice on eliminating memory model-related bugs

KyungHee Kim, Tuba Yavuz-Kahveci, Beverly A. Sanders

Abstract

According to Java's relaxed memory model, programs that contain data races need not be sequentially consistent. Executions that are not sequentially consistent may exhibit surprising behavior such as operations on a thread occurring in a different order than indicated by the source code or different threads having inconsistent views of updates of shared variables. Java Racefinder (JRF) is an extension of Java Pathfinder (JPF), a model checker for Java bytecode. JRF precisely detects data races as defined by the memory model and can thus be used to verify sequential consistency. We describe an extension to JRF, JRF-Eliminator (JRF-E), that analyzes information collected during model checking, specifically counterexample traces and acquiring histories, and provides advice to the programmer on how to eliminate detected data races from a program. If data races have been eliminated, standard model checking and other verification techniques that implicitly assume sequential consistency can be soundly employed to verify additional properties.

BibTeX
@inproceedings{Kim-al:ASE10,
  author    = {KyungHee Kim and
               Tuba Yavuz{-}Kahveci and
               Beverly A. Sanders},
  title     = {{JRF-E:} using model checking to give advice on eliminating memory model-related bugs},
  booktitle = {ASE},
  pages     = {215--224},
  publisher = {{ACM}},
  year      = {2010},
}

Related papers