Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking

Yuan Yu, Thomas Rodeheffer, and Wei Chen


Bugs due to data races in multithreaded programs often exhibit non-deterministic symptoms and are notoriously difficult to find. This paper describes RaceTrack, a dynamic race detection tool that tracks the actions of a program and reports a warning whenever a suspicious pattern of activity has been observed. RaceTrack uses a novel hybrid detection algorithm and employs an adaptive approach that automatically directs more effort to areas that are more suspicious, thus providing more accurate warnings for much less overhead. A post-processing step correlates warnings and ranks code segments based on how strongly they are implicated in potential data races. We implemented RaceTrack inside the virtual machine of Microsoft’s Common Language Runtime (product version v1.1.4322) and monitored several major, real-world applications directly out-of-the-box, without any modification. Adaptive tracking resulted in a slowdown ratio of about 3x on memory-intensive programs and typically much less than 2x on other programs, and a memory ratio of typically less than 1.2x. Several serious data race bugs were revealed, some previously unknown.


Publication typeInproceedings
Published inACM Symposium on Operating Systems Principles (SOSP 2005)
InstitutionMicrosoft Research
AddressBrighton, UK
PublisherAssociation for Computing Machinery, Inc.
> Publications > RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking