mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
etcd-tester: skip compaction after different hash
When hashes don't match, there could be some nodes falling behind and the compact request can then error with 'future revision compact'.
This commit is contained in:
parent
05d5459b1d
commit
e835d24bea
@ -38,7 +38,10 @@ func (tt *tester) runLoop() {
|
|||||||
tt.status.setRound(i)
|
tt.status.setRound(i)
|
||||||
roundTotalCounter.Inc()
|
roundTotalCounter.Inc()
|
||||||
|
|
||||||
var currentRevision int64
|
var (
|
||||||
|
currentRevision int64
|
||||||
|
success bool
|
||||||
|
)
|
||||||
for j, f := range tt.failures {
|
for j, f := range tt.failures {
|
||||||
caseTotalCounter.WithLabelValues(f.Desc()).Inc()
|
caseTotalCounter.WithLabelValues(f.Desc()).Inc()
|
||||||
|
|
||||||
@ -50,7 +53,7 @@ func (tt *tester) runLoop() {
|
|||||||
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
plog.Printf("[round#%d case#%d] start failure %s", i, j, f.Desc())
|
plog.Printf("[round#%d case#%d] start failure %s", i, j, f.Desc())
|
||||||
|
|
||||||
@ -61,7 +64,7 @@ func (tt *tester) runLoop() {
|
|||||||
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
plog.Printf("[round#%d case#%d] injected failure", i, j)
|
plog.Printf("[round#%d case#%d] injected failure", i, j)
|
||||||
|
|
||||||
@ -72,7 +75,7 @@ func (tt *tester) runLoop() {
|
|||||||
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
plog.Printf("[round#%d case#%d] recovered failure", i, j)
|
plog.Printf("[round#%d case#%d] recovered failure", i, j)
|
||||||
|
|
||||||
@ -109,23 +112,23 @@ func (tt *tester) runLoop() {
|
|||||||
plog.Printf("[round#%d case#%d.%d] inconsistent current revisions %+v", i, j, k, revs)
|
plog.Printf("[round#%d case#%d.%d] inconsistent current revisions %+v", i, j, k, revs)
|
||||||
}
|
}
|
||||||
if !ok || rerr != nil {
|
if !ok || rerr != nil {
|
||||||
plog.Printf("[round#%d case#%d] checking current revisions failed (%v)", i, j, revs)
|
plog.Printf("[round#%d case#%d] checking current revisions failed [revisions: %v]", i, j, revs)
|
||||||
if err := tt.cleanup(i, j); err != nil {
|
if err := tt.cleanup(i, j); err != nil {
|
||||||
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
plog.Printf("[round#%d case#%d] all members are consistent with current revisions", i, j)
|
plog.Printf("[round#%d case#%d] all members are consistent with current revisions [revisions: %v]", i, j, revs)
|
||||||
|
|
||||||
plog.Printf("[round#%d case#%d] checking current storage hashes...", i, j)
|
plog.Printf("[round#%d case#%d] checking current storage hashes...", i, j)
|
||||||
if _, ok = getSameValue(hashes); !ok {
|
if _, ok = getSameValue(hashes); !ok {
|
||||||
plog.Printf("[round#%d case#%d] checking current storage hashes failed (%v)", i, j, hashes)
|
plog.Printf("[round#%d case#%d] checking current storage hashes failed [hashes: %v]", i, j, hashes)
|
||||||
if err := tt.cleanup(i, j); err != nil {
|
if err := tt.cleanup(i, j); err != nil {
|
||||||
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
plog.Printf("[round#%d case#%d] cleanup error: %v", i, j, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
continue
|
break
|
||||||
}
|
}
|
||||||
plog.Printf("[round#%d case#%d] all members are consistent with storage hashes", i, j)
|
plog.Printf("[round#%d case#%d] all members are consistent with storage hashes", i, j)
|
||||||
|
|
||||||
@ -135,8 +138,12 @@ func (tt *tester) runLoop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
plog.Printf("[round#%d case#%d] succeed!", i, j)
|
plog.Printf("[round#%d case#%d] succeed!", i, j)
|
||||||
|
success = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !success {
|
||||||
|
continue
|
||||||
|
}
|
||||||
revToCompact := max(0, currentRevision-10000)
|
revToCompact := max(0, currentRevision-10000)
|
||||||
plog.Printf("[round#%d] compacting storage at %d (current revision %d)", i, revToCompact, currentRevision)
|
plog.Printf("[round#%d] compacting storage at %d (current revision %d)", i, revToCompact, currentRevision)
|
||||||
if err := tt.cluster.compactKV(revToCompact); err != nil {
|
if err := tt.cluster.compactKV(revToCompact); err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user