Skip to content
This repository was archived by the owner on Jun 19, 2025. It is now read-only.

Commit 12195cc

Browse files
authored
fix goroutine leak when reloading server config (#469)
This commit fixes a goroutine leak that occurs when reloading the server configuration. During a config reload, the server establishes a 2nd connection to the backend keystore and replaces the existing connection with the newly opened one. The switch is performed atomically (without locking) to not block or abort ongoing requests. Once the server has replaced the keystore connection, it closes it. Before this commit, the server stopped the in-memory key cache and its GC goroutines. However, it did not close any resources (goroutines/file descriptors) allocated by the replaced keystore. This commit fixes this. Signed-off-by: Andreas Auernhammer <github@aead.dev>
1 parent f111da8 commit 12195cc

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

keystore.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ func (c *keyCache) List(ctx context.Context, prefix string, n int) ([]string, st
348348
// releases associated resources.
349349
func (c *keyCache) Close() error {
350350
c.stop()
351-
return nil
351+
return c.store.Close()
352352
}
353353

354354
// gc executes f periodically until the ctx.Done() channel returns.

0 commit comments

Comments
 (0)