raft: lock storage when compact it
etcd now compact raft storage asynchronously, and append entry to raft storage may happen at the same time. Add the lock to fix the bug that the entries saved in storage may be organized in a wrong way.release-2.1
parent
39633850d1
commit
c6de464587
|
@ -194,6 +194,8 @@ func (ms *MemoryStorage) CreateSnapshot(i uint64, cs *pb.ConfState, data []byte)
|
|||
// It is the application's responsibility to not attempt to compact an index
|
||||
// greater than raftLog.applied.
|
||||
func (ms *MemoryStorage) Compact(compactIndex uint64) error {
|
||||
ms.Lock()
|
||||
defer ms.Unlock()
|
||||
offset := ms.ents[0].Index
|
||||
if compactIndex <= offset {
|
||||
return ErrCompacted
|
||||
|
|
Loading…
Reference in New Issue