From 06ea831368da1fbd310cf78d0b80b44f6b750d53 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 22 Dec 2025 17:55:43 -0800 Subject: [PATCH] fix: improve error messages and channel handling in sendRegistration - Clarify error message when stream fails before registration sent - Use two-value receive form to properly detect closed channels - Better distinguish between closed channel and nil value scenarios --- weed/worker/client.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/weed/worker/client.go b/weed/worker/client.go index 622e143ab..1cffa1009 100644 --- a/weed/worker/client.go +++ b/weed/worker/client.go @@ -637,7 +637,7 @@ func (c *GrpcAdminClient) sendRegistration(worker *types.WorkerData, streamFaile case <-time.After(5 * time.Second): return fmt.Errorf("failed to send registration message: timeout") case <-streamFailed: - return fmt.Errorf("stream failed while sending registration") + return fmt.Errorf("stream failed before registration message could be sent") } // Wait for registration response @@ -647,8 +647,8 @@ func (c *GrpcAdminClient) sendRegistration(worker *types.WorkerData, streamFaile for { select { - case regResp := <-regWait: - if regResp == nil { + case regResp, ok := <-regWait: + if !ok || regResp == nil { return fmt.Errorf("registration failed: channel closed unexpectedly") } if regResp.Success {