Litcius/Paper detail

Who goes first? detecting go concurrency bugs via message reordering

Ziheng Liu, Shihao Xia, Yu Liang, Linhai Song, Hong Hu

202219 citationsDOI

Abstract

Go is a young programming language invented to build safe and efficient concurrent programs. It provides goroutines as lightweight threads and channels for inter-goroutine communication. Programmers are encouraged to explicitly pass messages through channels to connect goroutines, with the purpose of reducing the chance of making programming mistakes and introducing concurrency bugs. Go is one of the most beloved programming languages and has already been used to build many critical infrastructure software systems in the data-center environment. However, a recent study shows that channel-related concurrency bugs are still common in Go programs, severely hurting the reliability of the programs.

Topics & Concepts

Computer scienceConcurrencyProgramming languageConcurrent computingConcurrent object-oriented programmingReliability (semiconductor)Code (set theory)Programming paradigmSoftwareDistributed computingProgramming domainInductive programmingPhysicsPower (physics)Set (abstract data type)Quantum mechanicsParallel Computing and Optimization TechniquesDistributed systems and fault toleranceSecurity and Verification in Computing
Who goes first? detecting go concurrency bugs via message reordering | Litcius