java-topology/defects/nats-server/patch/nats-0001-peer-dedup-map.patch

20 lines
676 B
Diff

# UNDF: UNDF-2026-000000179
--- a/server/jetstream_cluster.go
+++ b/server/jetstream_cluster.go
@@ -8125,9 +8125,13 @@ func (js *jetStream) processStreamUpdateRequest(ci *ClientInfo, acc *Account, su
// filter peers present in both sets
- for _, peer := range rg.Peers {
- if !slices.Contains(nrg.Peers, peer) {
- peerSet = append(peerSet, peer)
- }
- }
+ nrgPeerSet := make(map[string]struct{}, len(nrg.Peers))
+ for _, p := range nrg.Peers {
+ nrgPeerSet[p] = struct{}{}
+ }
+ for _, peer := range rg.Peers {
+ if _, ok := nrgPeerSet[peer]; !ok {
+ peerSet = append(peerSet, peer)
+ }
+ }
peerSet = append(peerSet, nrg.Peers...)