You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Recently upgraded to 0.11.x vault from 0.9.x. Noticed a steep/monotonically increasing rise in goroutine counts for the process. Hitting the vault process with a SIGQUIT and looking at the goroutines, the bloat seems to be almost entirely in github.com/hashicorp/vault/vault.expireLeaseStrategyRevoke.func1
This grows for the lifetime of the process or until vault gets sealed.
The issue seems to be here:
func expireLeaseStrategyRevoke(ctx context.Context, m *ExpirationManager, le *leaseEntry) {
...
go func() {
select {
case <-ctx.Done():
case <-m.quitCh:
cancel()
// Leaked for the lifetime of the process
}
}()
FWIW there isn't a concern for perf impact here, the goroutines don't do anything interesting. However, the goroutine count is something we value as a metric for overall health of vault and the bloat may hide other genuine problems. Ideally this should be easy to fix/avoid.
To Reproduce
Steps to reproduce the behavior:
Run vault 0.10.2 or higher
Create a bunch of leases
See runtime.num_goroutines climb
kill -3 to get goroutine dump (also kills process)
Describe the bug
Recently upgraded to 0.11.x vault from 0.9.x. Noticed a steep/monotonically increasing rise in goroutine counts for the process. Hitting the vault process with a SIGQUIT and looking at the goroutines, the bloat seems to be almost entirely in
github.com/hashicorp/vault/vault.expireLeaseStrategyRevoke.func1
This grows for the lifetime of the process or until vault gets sealed.
The issue seems to be here:
FWIW there isn't a concern for perf impact here, the goroutines don't do anything interesting. However, the goroutine count is something we value as a metric for overall health of vault and the bloat may hide other genuine problems. Ideally this should be easy to fix/avoid.
To Reproduce
Steps to reproduce the behavior:
vault 0.10.2 or higher
runtime.num_goroutines
climbcat log | grep goroutine -A 1 | grep -v goroutine | grep -v "\-\-" | sed 's|(.*$||g' | sort | uniq -c
github.com/hashicorp/vault/vault.expireLeaseStrategyRevoke.func1
dominating the listExpected behavior
Expect the goroutine count to stay bounded
Environment:
vault status
): 0.11.2vault version
): 0.11.2The text was updated successfully, but these errors were encountered: