• fix(bridge): never uplink to a same-cluster node + drop catalog row on peer removal
    Release / version (push) Canceled after 0s
    Release / frontend (push) Canceled after 0s
    Release / linux (amd64) (push) Canceled after 0s
    Release / linux (arm64) (push) Canceled after 0s
    Release / windows (push) Canceled after 0s
    Release / macos (push) Canceled after 0s
    Release / release (push) Canceled after 0s
    Build and Push Docker Image / build-and-push (push) Canceled after 0s

    LastSkywalker released this 2026-06-21 09:45:50 +03:00 | 122 commits to main since this release

    After 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:

    1. 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).

    2. 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_01U3LvJu9qZfspPr21TW9ptv

    Downloads