ePrints@IIScePrints@IISc Home | About | Browse | Latest Additions | Advanced Search | Contact | Help

Deterministic Dynamic Race Detection Across Program Versions

Poluri, Varun and Ramanathan, Murali Krishna (2015) Deterministic Dynamic Race Detection Across Program Versions. In: IEEE 31st International Conference on Software Maintenance and Evolution (ICSME), SEP 29-OCT 01, 2015, Bremen, GERMANY, pp. 181-190.

[img] PDF
31st_Int_Con_Sof_Mai_Evo_181_2015.pdf - Published Version
Restricted to Registered users only

Download (301kB) | Request a copy
Official URL: http://dx.doi.org/10.1109/ICSM.2015.7332464

Abstract

Dynamic race detectors operate by analyzing execution traces of programs to detect races in multithreaded programs. As the thread interleavings influence these traces, the sets of races detected across multiple runs of the detector can vary. This non-determinism without any change in program source and input can reduce programmer confidence in using the detector. From an organizational perspective, a defect needs to be reported consistently until it is fixed. Non-determinism complicates the work flow and the problem is further exacerbated with modifications to the program. In this paper, we propose a framework for deterministic dynamic race detection that ensures detection of races until they are fixed, even across program versions. The design attempts to preserve the racy behavior with changes to the program source that include addition (and deletion) of locks and shared memory accesses. We record, transform and replay the schedules across program versions intelligently to achieve this goal. We have implemented a framework, named STABLER, and evaluated our ideas by applying popular race detectors (DJIT+, FastTrack) on different versions of many open-source multithreaded Java programs. Our experimental results show that we are able to detect all the unfixed races consistently across major releases of the program. For both the detectors, the maximum incurred slowdown, with our framework, for record and replay is 1.2x and 2.29x respectively. We also perform user experiments where volunteers fixed a significant number of races. In spite of these changes, our framework is effective in its ability to detect all the unfixed races.

Item Type: Conference Proceedings
Additional Information: Copy right for this article belongs to the IEEE, 345 E 47TH ST, NEW YORK, NY 10017 USA
Department/Centre: Division of Electrical Sciences > Computer Science & Automation
Date Deposited: 30 Aug 2016 10:17
Last Modified: 30 Aug 2016 10:17
URI: http://eprints.iisc.ac.in/id/eprint/54534

Actions (login required)

View Item View Item