photo of speaker Linhai Song

Speaker: Linhai Song (Pennsylvania State University)

Date: Monday, May 23rd, 2022

Time: 3:30 - 4:30 pm

Location: Zoom

Title: Detecting Concurrency Bugs in Go Software Systems


Go is a statically-typed programming language that aims to provide a simple, efficient, and safe way to implement concurrent programs. To achieve its design purpose, Go recommends passing messages through channels as a less error-prone means of thread communication and also provides several new concurrency mechanisms and libraries to ease multi-threading programming. Since its creation in 2009, Go has become increasingly popular and has already been adopted to build many important software infrastructures. Unfortunately, Go concurrency bugs, especially those due to misuse of channels, still exist widely, severely hurting the reliability of Go software systems. 

In this talk, I will present our recent research work on fighting Go concurrency bugs. We first empirically studied 171 concurrency bugs from six famous, open-source Go software, including Docker, Kubernetes, and gRPC to compare message passing and shared memory concurrency. Inspired by the study, we then built a static concurrency bug detection system, GCatch, to effectively identify block bugs due to misuse of channels. To avoid fundamental limitations of static analysis and capture more concurrency bugs, we further designed a dynamic detection system, GFuzz. Both GCatch and GFuzz pinpointed hundreds of previously unknown concurrency bugs from famous Go software. Many of those detected bugs have already been fixed by programmers based on our reporting. 


Linhai Song is an Assistant Professor at the Pennsylvania State University. Linhai received his Ph.D. at the University of Wisconsin-Madison in 2015. His research interests include systems, programming languages, software engineering, and security. Linhai won an NSF Career Award in 2022, the MICRO Best Paper Runner Up in 2014, and the ACM SIGPLAN Research Highlights Award in 2011.