Send our own serverinfo when we receive an update from a new server

Signed-off-by: Derek Collison <derek@nats.io>
This commit is contained in:
Derek Collison
2021-02-07 06:20:42 -08:00
parent 6ac7b238b0
commit f209c60123
2 changed files with 16 additions and 7 deletions

View File

@@ -878,6 +878,12 @@ func (s *Server) remoteServerUpdate(sub *subscription, _ *client, subject, reply
}
si := ssm.Server
node := string(getHash(si.Name))
if _, ok := s.nodeToInfo.Load(node); !ok {
// Since we have not seen this one they probably have not seen us so send out our update.
s.mu.Lock()
s.sendStatsz(fmt.Sprintf(serverStatsSubj, s.info.ID))
s.mu.Unlock()
}
s.nodeToInfo.Store(node, &nodeInfo{si.Name, si.Cluster, si.ID, false})
}

View File

@@ -3594,14 +3594,17 @@ func createJetStreamSuperCluster(t *testing.T, numServersPer, numClusters int) *
sc.waitOnAllCurrent()
// Wait for all the peer nodes to be registered.
expires := time.Now().Add(5 * time.Second)
for ml := sc.leader(); ml != nil && time.Now().Before(expires); {
peers := ml.ActivePeers()
if len(peers) == numClusters*numServersPer {
break
checkFor(t, 5*time.Second, 100*time.Millisecond, func() error {
var peers []string
if ml := sc.leader(); ml != nil {
peers = ml.ActivePeers()
if len(peers) == numClusters*numServersPer {
return nil
}
}
time.Sleep(25 * time.Millisecond)
}
fmt.Printf("AP is %+v\n", peers)
return fmt.Errorf("Not correct number of peers, expected %d, got %d", numClusters*numServersPer, len(peers))
})
if sc.leader() == nil {
sc.t.Fatalf("Expected a cluster leader, got none")