Skip to content

Ping message no longer has a canaries field, only its comment remains #64

Description

@bibonix

The Ping message in ping.proto has a full comment block describing a canaries map field — per-peer probe-failure counters keyed by dotted IPv4, bounded to fleet size — but the field itself is gone from the message body. Only uint64 timestamp = 1; is defined now.

The regression came in with commit 71676cc (PR #53, "docs(ping): bound canaries map entries to fleet size"). The PR body says "No wire changes", but the diff removed the map<string, uint32> canaries = 2; line alongside adding the new limits sentence to the comment. That removal slipped through review and got merged.

So the Ping wire format has silently lost its reachability piggyback. Any client that still encodes a canaries map hits "unknown field" on the Node; per-peer probe failures never reach the Hub, and unreachable nodes can no longer be retired based on ping data. Downstream work already assumes the field is there — see the still-open #14 (canaries key encoding) and PR #46 (dotted-decimal conversion between Peer.ip and Ping.canaries).

Fix: restore map<string, uint32> canaries = 2; as the last line inside message Ping, immediately after the existing comment block. Field number 2 is still unused, so the wire format matches what earlier clients emit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions