DCSEMay 24, 2021

Automated Dynamic Concurrency Analysis for Go

arXiv:2105.11064v12 citations
Originality Incremental advance
AI Analysis

This addresses concurrency debugging challenges for Go developers, representing an incremental improvement over existing methods.

The authors tackled the problem of debugging concurrent programs in Go by developing an automatic dynamic tracing mechanism that captures the whole-program concurrency model, showing preliminary effectiveness and scalability up to over 2,000 goroutines.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes