@@ -19,7 +19,6 @@ package clusterresolver
1919
2020import (
2121 "fmt"
22-
2322 "google.golang.org/grpc/internal/xds/clients"
2423 "google.golang.org/grpc/internal/xds/xdsclient/xdsresource"
2524)
@@ -57,14 +56,12 @@ func newNameGenerator(prefix uint64) *nameGenerator {
5756func (ng * nameGenerator ) generate (priorities [][]xdsresource.Locality ) []string {
5857 var ret []string
5958 usedNames := make (map [string ]bool )
60-
6159 for _ , priority := range priorities {
6260 var candidates []string
6361 for _ , locality := range priority {
6462 name , exists := ng .existingNames [locality .ID ]
6563 if ! exists {
66- name = fmt .Sprintf ("priority-%d-%d" , ng .prefix , ng .nextID )
67- ng .nextID ++
64+ name = ng .generateNewName (name )
6865 ng .existingNames [locality .ID ] = name
6966 }
7067 candidates = append (candidates , name )
@@ -77,9 +74,19 @@ func (ng *nameGenerator) generate(priorities [][]xdsresource.Locality) []string
7774 break
7875 }
7976 }
77+ if chosenName == "" {
78+ // All candidate names are used, generate a new name.
79+ chosenName = ng .generateNewName (chosenName )
80+ }
8081
8182 ret = append (ret , chosenName )
8283 usedNames [chosenName ] = true
8384 }
8485 return ret
8586}
87+
88+ func (ng * nameGenerator ) generateNewName (name string ) string {
89+ name = fmt .Sprintf ("priority-%d-%d" , ng .prefix , ng .nextID )
90+ ng .nextID ++
91+ return name
92+ }
0 commit comments