Fix Admin UI master list showing gRPC port instead of HTTP port (#8869)
* Fix Admin UI master list showing gRPC port instead of HTTP port for followers (#8867) Raft stores server addresses as gRPC addresses. The Admin UI was using these addresses directly via ToHttpAddress(), which cannot extract the HTTP port from a plain gRPC address. Use GrpcAddressToServerAddress() to properly convert gRPC addresses back to HTTP addresses. * Use httpAddress consistently as masterMap key Address review feedback: masterInfo.Address (HTTP form) was already computed but the raw address was used as the map key, causing potential key mismatches between topology and raft data.
This commit is contained in:
@@ -943,7 +943,7 @@ func (s *AdminServer) GetClusterMasters() (*ClusterMastersData, error) {
|
|||||||
leaderCount++
|
leaderCount++
|
||||||
}
|
}
|
||||||
|
|
||||||
masterMap[master.Address] = masterInfo
|
masterMap[masterInfo.Address] = masterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
// Then, get additional master information from Raft cluster
|
// Then, get additional master information from Raft cluster
|
||||||
@@ -955,11 +955,11 @@ func (s *AdminServer) GetClusterMasters() (*ClusterMastersData, error) {
|
|||||||
|
|
||||||
// Process each raft server
|
// Process each raft server
|
||||||
for _, server := range resp.ClusterServers {
|
for _, server := range resp.ClusterServers {
|
||||||
address := server.Address
|
// Raft stores gRPC addresses, convert to HTTP address
|
||||||
httpAddress := pb.ServerAddress(address).ToHttpAddress()
|
httpAddress := pb.GrpcAddressToServerAddress(server.Address)
|
||||||
|
|
||||||
// Update existing master info or create new one
|
// Update existing master info or create new one
|
||||||
if masterInfo, exists := masterMap[address]; exists {
|
if masterInfo, exists := masterMap[httpAddress]; exists {
|
||||||
// Update existing master with raft data
|
// Update existing master with raft data
|
||||||
masterInfo.IsLeader = server.IsLeader
|
masterInfo.IsLeader = server.IsLeader
|
||||||
masterInfo.Suffrage = server.Suffrage
|
masterInfo.Suffrage = server.Suffrage
|
||||||
@@ -970,7 +970,7 @@ func (s *AdminServer) GetClusterMasters() (*ClusterMastersData, error) {
|
|||||||
IsLeader: server.IsLeader,
|
IsLeader: server.IsLeader,
|
||||||
Suffrage: server.Suffrage,
|
Suffrage: server.Suffrage,
|
||||||
}
|
}
|
||||||
masterMap[address] = masterInfo
|
masterMap[httpAddress] = masterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
if server.IsLeader {
|
if server.IsLeader {
|
||||||
|
|||||||
Reference in New Issue
Block a user