-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Open
Labels
P1High: Likely tackled by core team if no one steps upHigh: Likely tackled by core team if no one steps upeffort/hoursEstimated to take one or several hoursEstimated to take one or several hourshelp wantedSeeking public contribution on this issueSeeking public contribution on this issuekind/enhancementA net-new feature or improvement to an existing featureA net-new feature or improvement to an existing feature
Description
Go 1.26 ships an experimental goroutine leak profiler (GOEXPERIMENT=goroutineleakprofile). It detects goroutines blocked on channels, mutexes, or
conditions that can never unblock, using GC reachability analysis. Zero runtime overhead unless actively collecting.
Available at /debug/pprof/goroutineleak when enabled.
Proposal
Once 1.27 ships with it enabled by default:
- Add a
goroutine-leakcollector toipfs diag profile --collectors(gated on the experiment being available at runtime) - Expose it via the existing
/debug/pprof/endpoint on the API port
This would help diagnose daemon goroutine leaks without external tooling. Useful for long-running nodes where leaked goroutines accumulate over time.
References
- https://go.dev/doc/go1.26#goroutineleak-profiles
runtime/pprofgoroutineleak profile- Expected to be enabled by default in Go 1.27
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P1High: Likely tackled by core team if no one steps upHigh: Likely tackled by core team if no one steps upeffort/hoursEstimated to take one or several hoursEstimated to take one or several hourshelp wantedSeeking public contribution on this issueSeeking public contribution on this issuekind/enhancementA net-new feature or improvement to an existing featureA net-new feature or improvement to an existing feature