etcdserver: wait for raft is notified on confChange before responding to client

Signed-off-by: Benjamin Wang <wachao@vmware.com>
This commit is contained in:
Benjamin Wang
2023-04-12 18:54:33 +08:00
committed by Chao Chen
parent d3233fec0a
commit ad3b6ee4c6
3 changed files with 39 additions and 13 deletions

View File

@ -689,7 +689,8 @@ func TestApplyConfigChangeUpdatesConsistIndex(t *testing.T) {
Data: pbutil.MustMarshal(cc),
}}
_, appliedi, _ := srv.apply(ents, &raftpb.ConfState{})
confChangeCh := make(chan struct{}, 1)
_, appliedi, _ := srv.apply(ents, &raftpb.ConfState{}, confChangeCh)
consistIndex := srv.consistIndex.ConsistentIndex()
assert.Equal(t, uint64(2), appliedi)
@ -763,7 +764,8 @@ func TestApplyMultiConfChangeShouldStop(t *testing.T) {
ents = append(ents, ent)
}
_, _, shouldStop := srv.apply(ents, &raftpb.ConfState{})
confChangeCh := make(chan struct{}, 1)
_, _, shouldStop := srv.apply(ents, &raftpb.ConfState{}, confChangeCh)
if !shouldStop {
t.Errorf("shouldStop = %t, want %t", shouldStop, true)
}