BinGo: Pinpointing Concurrency Bugs in Go via Binary Analysis
Chongxin Zhong, Qidong Zhao, and Xu Liu

TL;DR
BinGo is a dynamic binary analysis tool that detects concurrency bugs in Go applications without requiring source code access, effectively handling mixed-language programs and enabling deployment in production environments.
Contribution
This paper introduces BinGo, the first tool for concurrency bug detection in Go via binary analysis, overcoming limitations of source-code-based approaches.
Findings
High bug detection coverage with no false positives
Effective in real applications with moderate overhead
Works on mixed-language Go programs
Abstract
Golang (also known as Go for short) has become popular in building concurrency programs in distributed systems. As the unique features, Go employs lightweight Goroutines to support highly parallelism in user space. Moreover, Go leverages channels to enable explicit communication among threads. However, recent studies show that concurrency bugs are not uncommon in Go applications. Pinpointing these concurrency bugs in real Go applications is both important and challenging. Existing approaches are mostly based on compiler-aided static or dynamic analysis, which have two limitations. First, existing approaches require the availability and recompilation of the source code, which work well on testing rather than production environments with no source code available for both applications and external libraries. Second, existing approaches work on pure Go code bases only, not programs mixed…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Advanced Data Storage Technologies
