Automated Dynamic Concurrency Analysis for Go
Saeed Taheri, Ganesh Gopalakrishnan

TL;DR
This paper introduces an automatic dynamic tracing tool for Go that captures and analyzes concurrency behavior, aiding debugging of complex concurrent programs with high scalability.
Contribution
It presents a novel enhancement to Go's tracer for efficient whole-program concurrency analysis and debugging, capable of handling thousands of goroutines.
Findings
Effective post-mortem concurrency analysis demonstrated
Scalable to over 2,000 goroutines
Preliminary results show promising debugging assistance
Abstract
The concurrency features of the Go language have proven versatile in the development of a number of concurrency systems. However, correctness methods to address challenges in Go concurrency debugging have not received much attention. In this work, we present an automatic dynamic tracing mechanism that efficiently captures and helps analyze the whole-program concurrency model. Using an enhancement to the built-in tracer package of Go and a framework that collects dynamic traces from application execution, we enable thorough post-mortem analysis for concurrency debugging. Preliminary results about the effectiveness and scalability (up to more than 2K goroutines) of our proposed dynamic tracing for concurrent debugging are presented. We discuss the future direction for exploiting dynamic tracing towards accelerating concurrent bug exposure.
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.
