Skip to content

Ping returns ErrNoServers when no servers are configured#195

Open
c-tonneslan wants to merge 1 commit into
bradfitz:masterfrom
c-tonneslan:fix/ping-empty-servers
Open

Ping returns ErrNoServers when no servers are configured#195
c-tonneslan wants to merge 1 commit into
bradfitz:masterfrom
c-tonneslan:fix/ping-empty-servers

Conversation

@c-tonneslan
Copy link
Copy Markdown

Fixes #179.

A client built via `New()` without addresses (or one whose `ServerList` was emptied later) reported `Ping()` success because `selector.Each` iterated over an empty list and returned nil. Other operations on the same client return `ErrNoServers` in that situation, so callers had no consistent way to tell whether the client could actually reach anything.

Track whether any per-server callback fired and surface `ErrNoServers` when none did. Real server errors keep propagating unchanged.

Added `TestPingNoServers` covering the zero-server case.

A client built via New() without addresses (or after they're all
removed via the ServerList) used to report Ping success because
selector.Each iterated over an empty list and returned nil. That
disagreed with every other client method, which surfaces ErrNoServers
in the same situation, and let callers think they had a working
client when nothing was reachable.

Track whether any callback fired and return ErrNoServers when none did.

Fixes bradfitz#179.

Signed-off-by: Charlie Tonneslan <cst0520@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ping reports successful on empty hosts

1 participant