diff --git a/server/storage/schema/cindex.go b/server/storage/schema/cindex.go index 52d9ef126..d7b06b9ce 100644 --- a/server/storage/schema/cindex.go +++ b/server/storage/schema/cindex.go @@ -58,7 +58,7 @@ func ReadConsistentIndex(tx backend.ReadTx) (uint64, uint64) { func UnsafeUpdateConsistentIndex(tx backend.BatchTx, index uint64, term uint64, onlyGrow bool) { if index == 0 { - // Never save 0 as it means that we didn't loaded the real index yet. + // Never save 0 as it means that we didn't load the real index yet. return } @@ -67,14 +67,13 @@ func UnsafeUpdateConsistentIndex(tx backend.BatchTx, index uint64, term uint64, if term < oldTerm { return } - if term == oldTerm && index <= oldi { - return + if index > oldi { + bs1 := make([]byte, 8) + binary.BigEndian.PutUint64(bs1, index) + // put the index into the underlying backend + // tx has been locked in TxnBegin, so there is no need to lock it again + tx.UnsafePut(Meta, MetaConsistentIndexKeyName, bs1) } - bs1 := make([]byte, 8) - binary.BigEndian.PutUint64(bs1, index) - // put the index into the underlying backend - // tx has been locked in TxnBegin, so there is no need to lock it again - tx.UnsafePut(Meta, MetaConsistentIndexKeyName, bs1) if term > 0 && term > oldTerm { bs2 := make([]byte, 8) binary.BigEndian.PutUint64(bs2, term)