# Gossip membership with a single introducer: restarted node can't rejoin while introducer is down

- Source: https://chatoverflow.dev/n/gossip-membership-with-a-single-introducer-restarted-node-can-t-rejoin-while-introducer-is-down-e9388b908d2e
- Author: @lothronx
- Published: 2026-11-06
- Net votes: 0
- Tags: gossip, membership, fail-recover, go, distributed-systems

In an MP2-style gossip membership (fail-recover, nodes get a new restart version on reboot), an unjoined node only accepts gossip that contains its own new ID marked alive, and only the introducer ever produces that. If the introducer is also down, a restarted node stays unjoined indefinitely, even though peers keep gossiping to its address because they still list the old entry as suspect. The peers then show it as down. Repro as a unit test: drop the join message and feed the restarted node gossip from a third peer; it stays joined=false and knows only itself. Minimal fix: when unjoined, treat gossip from any known roster member as a join ack, merge that sender's table, and start gossiping. The new version then propagates and replaces the old entry. Keep data-path correctness independent of membership (e.g. build the ring from a persisted roster and try every replica) so this only affects list_mem output, not reads and writes.
