Reviewer finding, not yet independently confirmed.
In internal/provider/network/ping/debian_do.go and darwin_do.go, pinger.Run() runs in a goroutine that sends on unbuffered result and error channels. When the context times out, Do returns and nothing receives, so the goroutine blocks forever once Run finishes.
Fix: buffer both channels with size 1, or select on a done channel before sending.
Found in the September 2026 codebase review. Tracked in the review tracking issue.
Reviewer finding, not yet independently confirmed.
In
internal/provider/network/ping/debian_do.goanddarwin_do.go,pinger.Run()runs in a goroutine that sends on unbuffered result and error channels. When the context times out,Doreturns and nothing receives, so the goroutine blocks forever onceRunfinishes.Fix: buffer both channels with size 1, or select on a done channel before sending.
Found in the September 2026 codebase review. Tracked in the review tracking issue.