• Stars
    star
    437
  • Rank 99,659 (Top 2 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Statically Detecting Go Concurrency Bugs

Automatically Detecting and Fixing Concurrency Bugs in Go Software Systems

Descriptions

This is the code repository of our ASPLOS paper [1]. GCatch is a suite of static detectors that can analyze large, real Go software. GFix is an automated fixing tool that can synthesize patches for blocking misuse-of-channel (BMOC) bugs detected by GCatch. We evaluated GCatch and GFix in 21 open-source Go projects (e.g., Docker, Kubernetes, gRPC). In total, GCatch detects 149 BMOC bugs and 119 traditional concurrency bugs and GFix successfully generates patches for 124 BMOC bugs. The detailed experimental data can be found here.

GCatch+

We extended GCatch to GCatch+ as a verification tool, as well as supporting detecting more misuse of concurrency primitives. The tool is in branch verification.

[1] Ziheng Liu, Shuofei Zhu, Boqin Qin, Hao Chen, and Linhai Song. “Automatically Detecting and Fixing Concurrency Bugs in Go Software Systems.” In ASPLOS’2021.