2c: relayed gossip is silently dropped (relay-only members don't converge) #40

Open
opened 2026-07-07 05:07:11 +00:00 by vxfemboy · 0 comments
vxfemboy commented 2026-07-07 05:07:11 +00:00 (Migrated from github.com)

Context

Whole-branch review of milestone 2c (decentralized discovery, branch feat/discovery-2c). Non-blocking; convergence holds via direct/root gossip paths (which the netns tests exercise).

Problem

A PacketType::Gossip payload that arrives via the relay (on_relayedrelayed_dataDataPlane::on_udp_datagram) hits the DataPlane's default arm and returns Outcome::None — so a relay-reached peer never actually ingests gossip. No crash, and the mesh still converges for peers reachable directly or via the seed root, but a member reachable ONLY through the relay would not participate in gossip.

Fix direction

Route a relayed PacketType::Gossip payload to Membership::on_gossip (like the direct on_udp gossip demux does), and relay-wrap the reply back through the relay to the originating member. Mirror the direct gossip demux's source-restriction (the relayed peer must be Established).

Scope

Out of scope for 2c v1 (tested paths use direct/root gossip). Belongs with relay-path polish alongside the 2b relay follow-ups.

## Context Whole-branch review of milestone 2c (decentralized discovery, branch feat/discovery-2c). Non-blocking; convergence holds via direct/root gossip paths (which the netns tests exercise). ## Problem A `PacketType::Gossip` payload that arrives **via the relay** (`on_relayed` → `relayed_data` → `DataPlane::on_udp_datagram`) hits the DataPlane's default arm and returns `Outcome::None` — so a relay-reached peer never actually ingests gossip. No crash, and the mesh still converges for peers reachable directly or via the seed root, but a member reachable ONLY through the relay would not participate in gossip. ## Fix direction Route a relayed `PacketType::Gossip` payload to `Membership::on_gossip` (like the direct `on_udp` gossip demux does), and relay-wrap the reply back through the relay to the originating member. Mirror the direct gossip demux's source-restriction (the relayed peer must be Established). ## Scope Out of scope for 2c v1 (tested paths use direct/root gossip). Belongs with relay-path polish alongside the 2b relay follow-ups.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
femboy/yip#40
No description provided.