diff --git a/server/etcdserver/api/membership/cluster.go b/server/etcdserver/api/membership/cluster.go index 44c6bdef9..f022d29c4 100644 --- a/server/etcdserver/api/membership/cluster.go +++ b/server/etcdserver/api/membership/cluster.go @@ -303,16 +303,9 @@ func (c *RaftCluster) Recover(onSet func(*zap.Logger, *semver.Version)) { // ValidateConfigurationChange takes a proposed ConfChange and // ensures that it is still valid. -func (c *RaftCluster) ValidateConfigurationChange(cc raftpb.ConfChange, shouldApplyV3 ShouldApplyV3) error { - var membersMap map[types.ID]*Member - var removedMap map[types.ID]bool - - if shouldApplyV3 { - membersMap, removedMap = c.be.MustReadMembersFromBackend() - } else { - membersMap, removedMap = membersFromStore(c.lg, c.v2store) - } - +func (c *RaftCluster) ValidateConfigurationChange(cc raftpb.ConfChange) error { + // TODO: this must be switched to backend as well. + membersMap, removedMap := membersFromStore(c.lg, c.v2store) id := types.ID(cc.NodeID) if removedMap[id] { return ErrIDRemoved diff --git a/server/etcdserver/api/membership/cluster_test.go b/server/etcdserver/api/membership/cluster_test.go index e03c19a4c..e5eb210c8 100644 --- a/server/etcdserver/api/membership/cluster_test.go +++ b/server/etcdserver/api/membership/cluster_test.go @@ -276,14 +276,7 @@ func TestClusterValidateAndAssignIDs(t *testing.T) { } } -func TestClusterValidateConfigurationChangeV3(t *testing.T) { - testClusterValidateConfigurationChange(t, true) -} func TestClusterValidateConfigurationChangeV2(t *testing.T) { - testClusterValidateConfigurationChange(t, false) -} - -func testClusterValidateConfigurationChange(t *testing.T, shouldApplyV3 ShouldApplyV3) { cl := NewCluster(zaptest.NewLogger(t), WithMaxLearners(1)) be := newMembershipBackend() cl.SetBackend(be) @@ -464,7 +457,7 @@ func testClusterValidateConfigurationChange(t *testing.T, shouldApplyV3 ShouldAp }, } for i, tt := range tests { - err := cl.ValidateConfigurationChange(tt.cc, shouldApplyV3) + err := cl.ValidateConfigurationChange(tt.cc) if err != tt.werr { t.Errorf("#%d: validateConfigurationChange error = %v, want %v", i, err, tt.werr) } diff --git a/server/etcdserver/server.go b/server/etcdserver/server.go index dd655350d..f468400b2 100644 --- a/server/etcdserver/server.go +++ b/server/etcdserver/server.go @@ -1967,7 +1967,7 @@ func removeNeedlessRangeReqs(txn *pb.TxnRequest) { // applyConfChange applies a ConfChange to the server. It is only // invoked with a ConfChange that has already passed through Raft func (s *EtcdServer) applyConfChange(cc raftpb.ConfChange, confState *raftpb.ConfState, shouldApplyV3 membership.ShouldApplyV3) (bool, error) { - if err := s.cluster.ValidateConfigurationChange(cc, shouldApplyV3); err != nil { + if err := s.cluster.ValidateConfigurationChange(cc); err != nil { cc.NodeID = raft.None s.r.ApplyConfChange(cc)