Race directed scheduling of concurrent programs

M Eslamimehr, J Palsberg - ACM SIGPLAN Notices, 2014 - dl.acm.org
ACM SIGPLAN Notices, 2014dl.acm.org
Detection of data races in Java programs remains a difficult problem. The best static
techniques produce many false positives, and also the best dynamic techniques leave room
for improvement. We present a new technique called race directed scheduling that for a
given race candidate searches for an input and a schedule that lead to the race. The search
iterates a combination of concolic execution and schedule improvement, and turns out to
find useful inputs and schedules efficiently. We use an existing technique to produce a …
Detection of data races in Java programs remains a difficult problem. The best static techniques produce many false positives, and also the best dynamic techniques leave room for improvement. We present a new technique called race directed scheduling that for a given race candidate searches for an input and a schedule that lead to the race. The search iterates a combination of concolic execution and schedule improvement, and turns out to find useful inputs and schedules efficiently. We use an existing technique to produce a manageable number of race candidates. Our experiments on 23 Java programs found 72 real races that were missed by the best existing dynamic techniques. Among those 72 races, 31 races were found with schedules that have between 1 million and 108 million events, which suggests that they are rare and hard-to-find races.
ACM Digital Library