-
fix(bridge): never uplink to a same-cluster node + drop catalog row on peer removal
Release / version (push) Canceled after 0sRelease / frontend (push) Canceled after 0sRelease / linux (amd64) (push) Canceled after 0sRelease / linux (arm64) (push) Canceled after 0sRelease / windows (push) Canceled after 0sRelease / macos (push) Canceled after 0sRelease / release (push) Canceled after 0sBuild and Push Docker Image / build-and-push (push) Canceled after 0sreleased this
2026-06-21 09:45:50 +03:00 | 122 commits to main since this releaseAfter removing orangepi5-plus from voters/hosts, the spoke leader kept POSTing
bridge replicate batches to it (http://192.168.0.111:9090) and listing it under
'Peer cluster URLs'. Two causes:-
Picker.Pick("") didn't actually exclude our own cluster despite the doc
comment — so a same-cluster catalog entry (which has the lowest LAN RTT)
could win and the bridge shipped its uplink at a sibling node instead of the
hub (sibling refuses /raft/bridge/replicate). Pick now skips any sample whose
cluster id == our own (guarded on myCluster!="" so the empty-id hub seed is
always kept). -
Removing a Raft voter left the node's peer_node_advertise row behind, so the
picker kept probing it and the write-forwarder kept targeting it. RemovePeer
now also submits CmdPeerNodeRemove (new Replicator.SubmitPeerNodeRemove) so
the URL catalog entry is dropped cluster-wide — a clean, complete removal.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01U3LvJu9qZfspPr21TW9ptvDownloads
-