Dev.to
7/3/2026

Catching Goroutine Leaks in Go
Original: Catching Goroutine Leaks in Go Tests With goleak
Short summary
Goroutine leaks—goroutines blocked forever on channel operations—aren't caught by tests or linters, but the Uber-maintained goleak tool detects them automatically. Add goleak.VerifyTestMain() to your test suite to catch leaks before production; when found, the tool provides a detailed stack trace showing where the goroutine was spawned, where it's stuck, and its scheduler state. Fix leaks by adding context cancellation or safe channel patterns.
- •Goroutine leaks aren't caught by standard testing tools; goleak detects them with detailed diagnostics
- •Add three lines of code (goleak.VerifyTestMain) to any test package to catch leaks in CI
- •Fix by using context cancellation or select statements to give blocked goroutines an escape path
Generated with AI, which can make mistakes.
Is this a good recommendation for you?


