etcd-tester: return error for mismatch rev/hash

This commit is contained in:
Gyu-Ho Lee 2016-08-27 21:00:56 -07:00
parent a0759298c5
commit 0bf2ef3c1b

View File

@ -122,14 +122,10 @@ func (tt *tester) doRound(round int) (bool, error) {
continue continue
} }
failed, err := tt.checkConsistency() if err := tt.checkConsistency(); err != nil {
if err != nil {
plog.Warningf("%s functional-tester returning with tt.checkConsistency error (%v)", tt.logPrefix(), err) plog.Warningf("%s functional-tester returning with tt.checkConsistency error (%v)", tt.logPrefix(), err)
return false, err return false, err
} }
if failed {
return false, nil
}
plog.Printf("%s succeed!", tt.logPrefix()) plog.Printf("%s succeed!", tt.logPrefix())
} }
return true, nil return true, nil
@ -144,7 +140,7 @@ func (tt *tester) updateRevision() error {
return err return err
} }
func (tt *tester) checkConsistency() (failed bool, err error) { func (tt *tester) checkConsistency() (err error) {
tt.cancelStressers() tt.cancelStressers()
defer func() { defer func() {
if err == nil { if err == nil {
@ -172,23 +168,23 @@ func (tt *tester) checkConsistency() (failed bool, err error) {
plog.Printf("%s #%d inconsistent current revisions %+v", tt.logPrefix(), i, revs) plog.Printf("%s #%d inconsistent current revisions %+v", tt.logPrefix(), i, revs)
} }
plog.Printf("%s updated current revisions with %d", tt.logPrefix(), tt.currentRevision)
if !ok || err != nil { if !ok || err != nil {
plog.Printf("%s checking current revisions failed [revisions: %v]", tt.logPrefix(), revs) err = fmt.Errorf("checking current revisions failed [err: %v, revisions: %v]", err, revs)
failed = true plog.Printf("%s %v", tt.logPrefix(), err)
return return
} }
plog.Printf("%s all members are consistent with current revisions [revisions: %v]", tt.logPrefix(), revs) plog.Printf("%s all members are consistent with current revisions [revisions: %v]", tt.logPrefix(), revs)
plog.Printf("%s checking current storage hashes...", tt.logPrefix()) plog.Printf("%s checking current storage hashes...", tt.logPrefix())
if _, ok = getSameValue(hashes); !ok { if _, ok = getSameValue(hashes); !ok {
plog.Printf("%s checking current storage hashes failed [hashes: %v]", tt.logPrefix(), hashes) err = fmt.Errorf("inconsistent hashes [%v]", hashes)
failed = true plog.Printf("%s %v", tt.logPrefix(), err)
return return
} }
plog.Printf("%s all members are consistent with storage hashes", tt.logPrefix()) plog.Printf("%s all members are consistent with storage hashes", tt.logPrefix())
return
plog.Printf("%s updated current revision to %d", tt.logPrefix(), tt.currentRevision)
return nil
} }
func (tt *tester) compact(rev int64, timeout time.Duration) (err error) { func (tt *tester) compact(rev int64, timeout time.Duration) (err error) {