My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
RaceDetectionLinks  
Links related to race detection
Updated Jun 2, 2011 by dvyu...@google.com

Please HELP!!!

Reader, we need your help! We want to collect an exhaustive and well annotated list of links to all materials related to race detection.

Race detectors

Articles on race detection

TODO (add more)

General bug-finding links

High-Level Data Races

  • High-Level Data Races. Cyrille Artho, Klaus Havelund, Armin Biere. Continuation Eraser approach. Basic examination object is set of access to variables near lock. Intersect of this sets for same lock produced view of variables - one of basic definition in this paper. Unhappily, this algorithm doesn't help us in First motivational example. It's cover Inconsistent state. By the way, article describe high level data-race occurred in NASA spacecraft controller. Algorithm described in Section 3 and occupy only one page. Large number of false positives on the real-world applications state in MUVI paper. Implementation name is Java PathExplorer.

  • Atom-Aid: Detecting and Surviving Atomicity Violations. Brandon Lucia. Asseverates typical atomicity violation ranges from 500 to 750 dynamic instructions. Suggest sophisticated united code in chucks size about 2000. Thereby potentially atomicity violation regions are hidden in the same chunk. Chucks executes atomically and in isolation. Based on implicit atomicity systems (BulkSC, Atomic Sequence Ordering, Implicit Transactions). Hiding 99% of real atomicity violations (Apache, MySQL, XMMS).
  • Type and Effect System for Atomicity. Cormac Flanagan, Shaz Qadeer. Introduced (static?) atomicity proof system. Demanded atomic annotations. Determined, when we can swap two adjacent instructions (For example: lock.acquire() - right mover, lock.release() - left mover). To check annotated method X system alternates X's instruction with another abstract instructions and tries bring to bay all X's instruction to makes they adjacent. Found new atomicity violations in java.lang.StringBuffer and java.lang.String. (JDK 1.4)
  • Kivati: Fast Detection and Prevention of Atomicity Violations. Lee Chew, David Lie. Static DFA analyse determines pairs of consecutive memory access and define this section atomic. For DFA uses CIL (Intermediate Language and Tools for Analysis and Transformation of C Programs) framework. In runtime checks atomicity of region. Low overhead (18 - 30 %). Affirm founding 11 known bugs in 5 real applications. To determine atomicity violations in runtime, uses watchpoints (implementation on x86).
  • Static Detection of Atomicity Violations in Object-Oriented Programs. Christoph von Praun and Thomas R. Gross Continuation PathExplorer view consistency approach (paper "High-Level Data Races. Cyrille Artho, Klaus Havelund, Armin Biere"). Introduce new definition - method consistency. Just extends it to accommodate the scope of methods as consistency criterion. Author are honest: paper contains two examples, where algorithm gets wrong result: false positive and false negative.
  • Runtime Analysis of Atomicity for Multithreaded Programs. Liqiang Wang and Scott D. Stoller Describes and comparisons different algorithms. Consider two analyse approaches for atomicity violation (and well-known happens-before and lockset for data races): REDUCTION-BASED ALGORITHM (online and offline), BLOCK-BASED ALGORITHM (runtime). First is improvement of Lipton reduction. Simple static analyse, demands user annotations about transaction regions. Second algorithm is just finding suspicious patterns in runtime instructions. Seems like this approach more closed to race detection.
  • How to miscompile programs with “benign” data races, Hans-J. Boehm The paper shows that all kinds of C or C++ source-level “benign” races discussed in the literature can in fact lead to incorrect execution as a result of perfectly reasonable compiler transformations, or when the program is moved to a different hardware platform. Thus there is no reason to believe that a currently working program with “benign races” will continue to work when it is recompiled. Perhaps most surprisingly, this includes even the case of potentially concurrent writes of the same value by different threads.

TODO

TODO add all links we already have somewhere.

TODO find new interesting links.

Comment by project member muti...@ispras.ru, Jun 17, 2010

just a new links #Tayfun Elmas, Shaz Qadeer, Serdar Tasiran. Goldilocks: Efficiently Computing the Happens-Before Relation Using Locksets. // First combined international workshops, FATES 2006 and RV 2006, Seattle, WA, USA, 2006. #Eric Bodden. Racer: Effective Race Detection Using AspectJ. McGill? University, 2008.

Comment by project member muti...@ispras.ru, Jun 17, 2010

tools

  1. Java Path Finder - Java virtual machine which explore thread schedules and noondetermenistic choices given by users. Thus it checks the Java program on all different interleavings of threads. As a component it implements Goldilocks algorithm
  2. CheckSync - implements Eraser
  3. Verifit based on ConTest?, implements Eraser
  4. ConTest - A Tool for Testing Multi-threaded Java Applications
  5. Racer is a new Eraser-based algorithm to detect data races in multi-threaded Java programs

Comment by dd...@corensic.com, Jun 3, 2011

Corensic provides Jinx for both Linux and Windows. Starting in version 1.3, the Linux version of Jinx provides a report showing a list of races that it has detected. This is a natural side effect of trying to find unusual thread interleavings that cause data corruption or crashes.

Comment by xue6...@gmail.com, Sep 29, 2011

Sign in to add a comment
Powered by Google Project Hosting