Gobench: A benchmark suite of real-world go concurrency bugs

T Yuan, G Li, J Lu, C Liu, L Li… - 2021 IEEE/ACM …, 2021 - ieeexplore.ieee.org
Go, a fast growing programming language, is often considered as “the programming
language of the cloud”. The language provides a rich set of synchronization primitives …

Automated verification of go programs via bounded model checking

N Dilley, J Lange - … 36th IEEE/ACM International Conference on …, 2021 - ieeexplore.ieee.org
The Go programming language offers a wide range of primitives to coordinate lightweight
threads, eg, channels, waitgroups, and mutexes—all of which may cause concurrency bugs …

An empirical study of messaging passing concurrency in Go projects

N Dilley, J Lange - 2019 IEEE 26th International Conference on …, 2019 - ieeexplore.ieee.org
Go is a popular programming language renowned for its good support for system
programming and its channel-based message passing concurrency mechanism. These …

Bounded verification of message-passing concurrency in go using promela and spin

N Dilley, J Lange - arXiv preprint arXiv:2004.01323, 2020 - arxiv.org
This paper describes a static verification framework for the message-passing fragment of the
Go programming language. Our framework extracts models that over-approximate the …

Static race detection and mutex safety and liveness for go programs

J Gabet, N Yoshida - 34th European Conference on Object …, 2020 - drops.dagstuhl.de
Go is a popular concurrent programming language thanks to its ability to efficiently combine
concurrency and systems programming. In Go programs, a number of concurrency bugs can …

Detecting blocking errors in go programs using localized abstract interpretation

OH Veileborg, GV Saioc, A Møller - Proceedings of the 37th IEEE/ACM …, 2022 - dl.acm.org
Channel-based concurrency is a widely used alternative to shared-memory concurrency but
is difficult to use correctly. Common programming errors may result in blocked threads that …

Automated Verification of Parametric Channel-Based Process Communication

GV Saioc, J Lange, A Møller - Proceedings of the ACM on Programming …, 2024 - dl.acm.org
A challenge of writing concurrent message passing programs is ensuring the absence of
partial deadlocks, which can cause severe memory leaks in long running systems. Several …

Distributed execution of communicating sequential process-style concurrency: Golang case study

J Whitney, C Gifford, M Pantoja - The Journal of Supercomputing, 2019 - Springer
In the last decade, the majority of new central processing units (CPU) have become
multicore. To take advantage of these new architectures, we need programming languages …

Automated verification of concurrent go programs via bounded model checking

N Dilley, J Lange - Automated Software Engineering, 2023 - Springer
The Go programming language offers a wide range of primitives to coordinate lightweight
threads, eg, channels, waitgroups, and mutexes—all of which may cause concurrency bugs …

Unveiling and Vanquishing Goroutine Leaks in Enterprise Microservices: A Dynamic Analysis Approach

GV Saioc, D Shirchenko… - 2024 IEEE/ACM …, 2024 - ieeexplore.ieee.org
Go is a modern programming language gaining popularity in enterprise microservice
systems. Concurrency is a first-class citizen in Go with lightweight “goroutines” as the …