Table of Contents
Fetching ...

SysPro: Reproducing System-level Concurrency Bugs from Bug Reports

Tarannum Shaila Zaman, Zhihui Yan, Chen Wang, Chadni Islam, Jiangfan Shi, Tingting Yu

TL;DR

SysPro tackles the challenge of reproducing system-level concurrency bugs from bug reports by automating the extraction of failure-inducing system-call interleavings and inputs, localizing them in source code with a structured IR approach, and reproducing bugs through dynamic instrumentation using PIN. It uses a two-phase workflow: (1) localize buggy system calls via IR and apriori-based ranking, and (2) generate test cases and enforce interleavings to trigger bugs. The empirical study on real-world benchmarks demonstrates high effectiveness (≈95.8% reproduction) and efficiency (average ≈9 minutes per bug) with strong MAP and recall metrics, and shows that structured IR plus apriori significantly outperform baselines and random testing. SysPro’s automation reduces reliance on manual bug reproduction, enabling rapid, repeatable debugging for system-level concurrency issues and offering a practical path toward larger reproducible-bug datasets.

Abstract

Reproducing system-level concurrency bugs requires both input data and the precise interleaving order of system calls. This process is challenging because such bugs are non-deterministic, and bug reports often lack the detailed information needed. Additionally, the unstructured nature of reports written in natural language makes it difficult to extract necessary details. Existing tools are inadequate to reproduce these bugs due to their inability to manage the specific interleaving at the system call level. To address these challenges, we propose SysPro, a novel approach that automatically extracts relevant system call names from bug reports and identifies their locations in the source code. It generates input data by utilizing information retrieval, regular expression matching, and the category-partition method. This extracted input and interleaving data are then used to reproduce bugs through dynamic source code instrumentation. Our empirical study on real-world benchmarks demonstrates that SysPro is both effective and efficient at localizing and reproducing system-level concurrency bugs from bug reports.

SysPro: Reproducing System-level Concurrency Bugs from Bug Reports

TL;DR

SysPro tackles the challenge of reproducing system-level concurrency bugs from bug reports by automating the extraction of failure-inducing system-call interleavings and inputs, localizing them in source code with a structured IR approach, and reproducing bugs through dynamic instrumentation using PIN. It uses a two-phase workflow: (1) localize buggy system calls via IR and apriori-based ranking, and (2) generate test cases and enforce interleavings to trigger bugs. The empirical study on real-world benchmarks demonstrates high effectiveness (≈95.8% reproduction) and efficiency (average ≈9 minutes per bug) with strong MAP and recall metrics, and shows that structured IR plus apriori significantly outperform baselines and random testing. SysPro’s automation reduces reliance on manual bug reproduction, enabling rapid, repeatable debugging for system-level concurrency issues and offering a practical path toward larger reproducible-bug datasets.

Abstract

Reproducing system-level concurrency bugs requires both input data and the precise interleaving order of system calls. This process is challenging because such bugs are non-deterministic, and bug reports often lack the detailed information needed. Additionally, the unstructured nature of reports written in natural language makes it difficult to extract necessary details. Existing tools are inadequate to reproduce these bugs due to their inability to manage the specific interleaving at the system call level. To address these challenges, we propose SysPro, a novel approach that automatically extracts relevant system call names from bug reports and identifies their locations in the source code. It generates input data by utilizing information retrieval, regular expression matching, and the category-partition method. This extracted input and interleaving data are then used to reproduce bugs through dynamic source code instrumentation. Our empirical study on real-world benchmarks demonstrates that SysPro is both effective and efficient at localizing and reproducing system-level concurrency bugs from bug reports.
Paper Structure (34 sections, 2 equations, 10 figures, 5 tables)

This paper contains 34 sections, 2 equations, 10 figures, 5 tables.

Figures (10)

  • Figure 1: An example of system-level bug report and associated source code
  • Figure 2: Race condition in gzip program: Bugzilla #155746
  • Figure 3: Race condition in mv program: Bugzilla #438076
  • Figure 4: Race condition in bash program: Debian #283702
  • Figure 5: The overview of SysPro framework
  • ...and 5 more figures