Detecting concurrent bugs in Go via capture and replay

EVENT DATE
01 Sep 2025
Please refer to specific dates for varied timings
TIME
10:00 am 11:30 am
LOCATION
SUTD Think Tank 12 (Building 1, Level 5, Room 1.506)

Go is a popular language for writing simple, secure and scalable systems partly thanks to its excellent built-in support for concurrency. This expressiveness comes at a cost as we encounter challenging bug scenarios such as panic and blocking bugs. A panic bug in Go arises if a second operation takes place on a closed channel. A blocking bug in Go arises if some goroutine (aka thread) is blocked but the rest of the system makes progress. Both bug scenarios often remain unnoticed during testing because they only show up under some rare schedule.

In this talk, I will survey the state of the art in the area of controlled concurrency (CCT) testing for Go to explore schedules that reveal panic and blocking bugs. I will report on a comprehensive capture and replay framework for Go I am working on that is able to host earlier CCT methods for Go. I will discuss several new novel aspects such as the ability to perform controlled replay of programs to guarantee that new schedules are actually explored. This leads to increased blocking bug detection capabilities in terms of performance and precision.

Speaker’s profile

Prof Martin Sulzmann received a Diplom Informatiker from the University of Karlsruhe in 1996 and a PhD from Yale University in 2000. He was lecturer at the University of Melbourne from 2000-2002, Assistant Professor at the National University of Singapore from 2002-2007, and Associate Professor at the IT University of Copenhagen in 2008. After a 3 1/2 year stint in industry, Martin returned to academia. He is now a Professor at the Hochschule Karlsruhe – Technik und Wirtschaft. Martin’s primary research area are programming languages, program analysis and software verification.

ADD TO CALENDAR
Google Calendar
Apple Calendar