From 8f5ce68adb2f6d958fad6f80b2dc1abb54425c33 Mon Sep 17 00:00:00 2001 From: jingyih Date: Wed, 19 Feb 2020 00:05:13 -0800 Subject: [PATCH] etcdctl: fix member add command Use members information from member add response, which is guaranteed to be up to date. --- etcdctl/ctlv3/command/member_command.go | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/etcdctl/ctlv3/command/member_command.go b/etcdctl/ctlv3/command/member_command.go index 239c34ca482..bdeff639a29 100644 --- a/etcdctl/ctlv3/command/member_command.go +++ b/etcdctl/ctlv3/command/member_command.go @@ -156,30 +156,8 @@ func memberAddCommandFunc(cmd *cobra.Command, args []string) { display.MemberAdd(*resp) if _, ok := (display).(*simplePrinter); ok { - ctx, cancel = commandCtx(cmd) - listResp, err := cli.MemberList(ctx) - // make sure the member who served member list request has the latest member list. - syncedMemberSet := make(map[uint64]struct{}) - syncedMemberSet[resp.Header.MemberId] = struct{}{} // the member who served member add is guaranteed to have the latest member list. - for { - if err != nil { - ExitWithError(ExitError, err) - } - if _, ok := syncedMemberSet[listResp.Header.MemberId]; ok { - break - } - // quorum get to sync cluster list - gresp, gerr := cli.Get(ctx, "_") - if gerr != nil { - ExitWithError(ExitError, err) - } - syncedMemberSet[gresp.Header.MemberId] = struct{}{} - listResp, err = cli.MemberList(ctx) - } - cancel() - conf := []string{} - for _, memb := range listResp.Members { + for _, memb := range resp.Members { for _, u := range memb.PeerURLs { n := memb.Name if memb.ID == newID {