Fast, Sound and Effectively Complete Dynamic Race Detection

01/25/2019
by   Andreas Pavlogiannis, et al.
0

Writing concurrent programs is highly error-prone due to the nondeterminism in interprocess communication. The most reliable indicators of errors in concurrency are data races, which are accesses to a shared resource that can be executed consecutively. We study the algorithmic problem of predicting data races in lock-based concurrent programs. The input consists of a concurrent trace t, and the task is to determine all pairs of events of t that constitute a data race. The problem lies at the heart of concurrent verification and has been extensively studied for over three decades. However, existing polynomial-time sound techniques are highly incomplete and can miss many simple races. In this work we develop a new polynomial-time algorithm for the problem that has no false positives. In addition, our algorithm is complete for input traces that consist of two processes, i.e., it provably detects all races in the trace. We also develop sufficient conditions for detecting completeness dynamically in cases of more than two processes. We make an experimental evaluation of our algorithm on a standard set of benchmarks. Our tool soundly reports thousands of races, and misses at most one race in the whole benchmark set. In addition, its running times are comparable, and often smaller than the theoretically fastest, yet highly incomplete, existing methods. To our knowledge, this is the first sound algorithm that achieves such a level of performance on both running time and completeness of the reported races.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/30/2020

The Complexity of Dynamic Data Race Prediction

Writing concurrent programs is notoriously hard due to scheduling non-de...
research
10/30/2020

Optimal Prediction of Synchronization-Preserving Races

Concurrent programs are notoriously hard to write correctly, as scheduli...
research
12/27/2019

LLOV: A Fast Static Data-Race Checker for OpenMP Programs

In the era of Exascale computing, writing efficient parallel programs is...
research
04/15/2020

Efficient, Near Complete and Often Sound Hybrid Dynamic Data Race Prediction (extended version)

Dynamic data race prediction aims to identify races based on a single pr...
research
07/23/2018

Data Race Detection on Compressed Traces

We consider the problem of detecting data races in program traces that h...
research
07/19/2019

Online Set-Based Dynamic Analysis for Sound Predictive Race Detection

Predictive data race detectors find data races that exist in executions ...
research
07/19/2023

Cross-thread critical sections and efficient dynamic race prediction methods

The lock set method and the partial order method are two main approaches...

Please sign up or login with your details

Forgot password? Click here to reset