etcdserver/api/v3rpc: "MemberList" never return non-empty ClientURLs

Signed-off-by: Gyuho Lee <leegyuho@amazon.com>

cr https://code.amazon.com/reviews/CR-29712724
This commit is contained in:
Gyuho Lee 2020-07-16 16:20:50 -07:00
parent 18dfb9cca3
commit 0372cfc7ab

View File

@ -16,6 +16,8 @@ package v3rpc
import (
"context"
"fmt"
"os"
"time"
"go.etcd.io/etcd/etcdserver"
@ -89,6 +91,19 @@ func (cs *ClusterServer) MemberUpdate(ctx context.Context, r *pb.MemberUpdateReq
func (cs *ClusterServer) MemberList(ctx context.Context, r *pb.MemberListRequest) (*pb.MemberListResponse, error) {
membs := membersToProtoMembers(cs.cluster.Members())
for idx := range membs {
mv := membs[idx]
if len(mv.ClientURLs) == 0 {
mv.ClientURLs = []string{"invalid"}
fmt.Fprintf(os.Stderr, "[EKS-DEBUG] member %x (name %q) has empty ClientURLs, adding placeholder value to prevent ClientURLs[0] panic [ClientURLs %q, PeerURLs %q]",
mv.ID,
mv.Name,
mv.ClientURLs,
mv.PeerURLs,
)
}
membs[idx] = mv
}
return &pb.MemberListResponse{Header: cs.header(), Members: membs}, nil
}