Browse Source

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
pull/7838/head
Chris Lu 2 months ago
parent
commit
06ea831368
  1. 6
      weed/worker/client.go

6
weed/worker/client.go

@ -637,7 +637,7 @@ func (c *GrpcAdminClient) sendRegistration(worker *types.WorkerData, streamFaile
case <-time.After(5 * time.Second): case <-time.After(5 * time.Second):
return fmt.Errorf("failed to send registration message: timeout") return fmt.Errorf("failed to send registration message: timeout")
case <-streamFailed: 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 // Wait for registration response
@ -647,8 +647,8 @@ func (c *GrpcAdminClient) sendRegistration(worker *types.WorkerData, streamFaile
for { for {
select { select {
case regResp := <-regWait:
if regResp == nil {
case regResp, ok := <-regWait:
if !ok || regResp == nil {
return fmt.Errorf("registration failed: channel closed unexpectedly") return fmt.Errorf("registration failed: channel closed unexpectedly")
} }
if regResp.Success { if regResp.Success {

Loading…
Cancel
Save