From 4f05f657dee7a202eabe0c61fbdb2b831ba97257 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 22 Dec 2025 00:52:15 -0800 Subject: [PATCH] Properly close regWait channel in reconnect to prevent resource leaks Close the regWait channel before setting it to nil in reconnect(), matching the pattern used in handleDisconnect(). This ensures any goroutines waiting on this channel during reconnection are properly signaled, preventing them from hanging. --- weed/worker/client.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/weed/worker/client.go b/weed/worker/client.go index e0ae719b5..a8c0b6b7d 100644 --- a/weed/worker/client.go +++ b/weed/worker/client.go @@ -269,7 +269,10 @@ func (c *GrpcAdminClient) reconnect(s *grpcState) error { // Clean up existing connection completely c.safeCloseChannel(&s.streamExit) c.safeCloseChannel(&s.streamFailed) - s.regWait = nil + if s.regWait != nil { + close(s.regWait) + s.regWait = nil + } if s.streamCancel != nil { s.streamCancel() }