🤖 AI Summary
This work formally defines and addresses, for the first time, the problem of detecting “short races” in program execution traces under a bounded window size—specifically, identifying race pairs of interest within subtraces containing at most w events. To this end, the authors propose a general monitoring framework that integrates a sliding-window mechanism with a compact dependency-tracking structure, instantiated into efficient dynamic detectors for both happens-before and sync-preserving races. The approach significantly reduces both time and space overhead while maintaining or even improving detection capability: its space complexity grows only logarithmically with w, and it achieves faster runtime and lower memory consumption. Experimental results demonstrate that, under identical resource budgets, the method detects substantially more short races, achieving a superior balance between efficiency and predictive power.
📝 Abstract
We introduce and study the problem of detecting short races in an observed trace. Specifically, for a race type $R$, given a trace $σ$ and window size $w$, the task is to determine whether there exists an $R$-race $(e_1, e_2)$ in $σ$ such that the subtrace starting with $e_1$ and ending with $e_2$ contains at most $w$ events. We present a monitoring framework for short-race prediction and instantiate the framework for happens-before and sync-preserving races, yielding efficient detection algorithms. Our happens-before algorithm runs in the same time as FastTrack but uses space that scales with $\log w$ as opposed to $\log |σ|$. For sync-preserving races, our algorithm runs faster and consumes significantly less space than SyncP. Our experiments validate the effectiveness of these short-race detection algorithms: they run more efficiently, use less memory, and detect significantly more races under the same budget, offering a reasonable balance between resource usage and predictive power.