Skip to content

Commit 069d756

Browse files
committed
Assume v2 store is always not nil
Signed-off-by: Marek Siarkowicz <[email protected]>
1 parent 839985d commit 069d756

File tree

4 files changed

+21
-38
lines changed

4 files changed

+21
-38
lines changed

server/etcdserver/api/membership/cluster.go

+19-33
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ func NewCluster(lg *zap.Logger, opts ...ClusterOption) *RaftCluster {
116116
removed: make(map[types.ID]bool),
117117
downgradeInfo: &serverversion.DowngradeInfo{Enabled: false},
118118
maxLearners: clOpts.maxLearners,
119+
v2store: v2store.New(),
119120
}
120121
}
121122

@@ -257,17 +258,9 @@ func (c *RaftCluster) SetVersionChangedNotifier(n *notify.Notifier) {
257258
}
258259

259260
func (c *RaftCluster) UnsafeLoad() {
260-
if c.be != nil {
261-
c.version = c.be.ClusterVersionFromBackend()
262-
c.members, c.removed = c.be.MustReadMembersFromBackend()
263-
} else {
264-
c.version = clusterVersionFromStore(c.lg, c.v2store)
265-
c.members, c.removed = membersFromStore(c.lg, c.v2store)
266-
}
267-
268-
if c.be != nil {
269-
c.downgradeInfo = c.be.DowngradeInfoFromBackend()
270-
}
261+
c.version = c.be.ClusterVersionFromBackend()
262+
c.members, c.removed = c.be.MustReadMembersFromBackend()
263+
c.downgradeInfo = c.be.DowngradeInfoFromBackend()
271264
}
272265

273266
func (c *RaftCluster) Recover(onSet func(*zap.Logger, *semver.Version)) {
@@ -400,9 +393,7 @@ func (c *RaftCluster) ValidateConfigurationChange(cc raftpb.ConfChange) error {
400393
func (c *RaftCluster) AddMember(m *Member, shouldApplyV3 ShouldApplyV3) {
401394
c.Lock()
402395
defer c.Unlock()
403-
if c.v2store != nil {
404-
mustSaveMemberToStore(c.lg, c.v2store, m)
405-
}
396+
mustSaveMemberToStore(c.lg, c.v2store, m)
406397

407398
if m.ID == c.localID {
408399
setIsLearnerMetric(m)
@@ -438,9 +429,8 @@ func (c *RaftCluster) AddMember(m *Member, shouldApplyV3 ShouldApplyV3) {
438429
func (c *RaftCluster) RemoveMember(id types.ID, shouldApplyV3 ShouldApplyV3) {
439430
c.Lock()
440431
defer c.Unlock()
441-
if c.v2store != nil {
442-
mustDeleteMemberFromStore(c.lg, c.v2store, id)
443-
}
432+
mustDeleteMemberFromStore(c.lg, c.v2store, id)
433+
444434
if c.be != nil && shouldApplyV3 {
445435
c.be.MustDeleteMemberFromBackend(id)
446436

@@ -482,9 +472,8 @@ func (c *RaftCluster) UpdateAttributes(id types.ID, attr Attributes, shouldApply
482472

483473
if m, ok := c.members[id]; ok {
484474
m.Attributes = attr
485-
if c.v2store != nil {
486-
mustUpdateMemberAttrInStore(c.lg, c.v2store, m)
487-
}
475+
mustUpdateMemberAttrInStore(c.lg, c.v2store, m)
476+
488477
if c.be != nil && shouldApplyV3 {
489478
c.be.MustSaveMemberToBackend(m)
490479
}
@@ -514,11 +503,9 @@ func (c *RaftCluster) PromoteMember(id types.ID, shouldApplyV3 ShouldApplyV3) {
514503
c.Lock()
515504
defer c.Unlock()
516505

517-
if c.v2store != nil {
518-
m := *(c.members[id])
519-
m.RaftAttributes.IsLearner = false
520-
mustUpdateMemberInStore(c.lg, c.v2store, &m)
521-
}
506+
m := *(c.members[id])
507+
m.RaftAttributes.IsLearner = false
508+
mustUpdateMemberInStore(c.lg, c.v2store, &m)
522509

523510
if id == c.localID {
524511
isLearner.Set(0)
@@ -548,11 +535,10 @@ func (c *RaftCluster) UpdateRaftAttributes(id types.ID, raftAttr RaftAttributes,
548535
c.Lock()
549536
defer c.Unlock()
550537

551-
if c.v2store != nil {
552-
m := *(c.members[id])
553-
m.RaftAttributes = raftAttr
554-
mustUpdateMemberInStore(c.lg, c.v2store, &m)
555-
}
538+
m := *(c.members[id])
539+
m.RaftAttributes = raftAttr
540+
mustUpdateMemberInStore(c.lg, c.v2store, &m)
541+
556542
if c.be != nil && shouldApplyV3 {
557543
c.members[id].RaftAttributes = raftAttr
558544
c.be.MustSaveMemberToBackend(c.members[id])
@@ -609,9 +595,9 @@ func (c *RaftCluster) SetVersion(ver *semver.Version, onSet func(*zap.Logger, *s
609595
c.version = ver
610596
sv := semver.Must(semver.NewVersion(version.Version))
611597
serverversion.MustDetectDowngrade(c.lg, sv, c.version)
612-
if c.v2store != nil {
613-
mustSaveClusterVersionToStore(c.lg, c.v2store, ver)
614-
}
598+
599+
mustSaveClusterVersionToStore(c.lg, c.v2store, ver)
600+
615601
if c.be != nil && shouldApplyV3 {
616602
c.be.MustSaveClusterVersionToBackend(ver)
617603
}

server/etcdserver/api/membership/cluster_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,7 @@ func TestNodeToMember(t *testing.T) {
653653
}
654654

655655
func newTestCluster(t testing.TB, membs []*Member) *RaftCluster {
656-
c := &RaftCluster{lg: zaptest.NewLogger(t), members: make(map[types.ID]*Member), removed: make(map[types.ID]bool)}
656+
c := &RaftCluster{lg: zaptest.NewLogger(t), members: make(map[types.ID]*Member), removed: make(map[types.ID]bool), v2store: v2store.New()}
657657
for _, m := range membs {
658658
c.members[m.ID] = m
659659
}

server/etcdserver/api/membership/membership_test.go

-4
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ func TestAddRemoveMember(t *testing.T) {
3434
c.AddMember(newTestMember(18, nil, "node18", nil), true)
3535
c.RemoveMember(18, true)
3636

37-
// Skipping removal of already removed member
38-
c.RemoveMember(17, true)
39-
c.RemoveMember(18, true)
40-
4137
c.AddMember(newTestMember(19, nil, "node19", nil), true)
4238

4339
// Recover from backend

server/etcdserver/server_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -1521,6 +1521,7 @@ func newTestCluster(t testing.TB) *membership.RaftCluster {
15211521
func newTestClusterWithBackend(t testing.TB, membs []*membership.Member, be backend.Backend) *membership.RaftCluster {
15221522
lg := zaptest.NewLogger(t)
15231523
c := membership.NewCluster(lg)
1524+
c.SetStore(v2store.New())
15241525
c.SetBackend(schema.NewMembershipBackend(lg, be))
15251526
for _, m := range membs {
15261527
c.AddMember(m, true)

0 commit comments

Comments
 (0)