mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
functional/tester: whitelist lease expire checker on snapshot restore
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
This commit is contained in:
@@ -325,7 +325,7 @@ func (clus *Cluster) setStresserChecker() {
|
||||
clus.lg.Info("updated stressers")
|
||||
}
|
||||
|
||||
func (clus *Cluster) runCheckers() (err error) {
|
||||
func (clus *Cluster) runCheckers(exceptions ...rpcpb.Checker) (err error) {
|
||||
defer func() {
|
||||
if err != nil {
|
||||
return
|
||||
@@ -339,28 +339,37 @@ func (clus *Cluster) runCheckers() (err error) {
|
||||
}
|
||||
}()
|
||||
|
||||
exs := make(map[rpcpb.Checker]struct{})
|
||||
for _, e := range exceptions {
|
||||
exs[e] = struct{}{}
|
||||
}
|
||||
for _, chk := range clus.checkers {
|
||||
if err = chk.Check(); err != nil {
|
||||
clus.lg.Warn(
|
||||
"consistency check START",
|
||||
zap.String("checker", chk.Type().String()),
|
||||
zap.Strings("client-endpoints", chk.EtcdClientEndpoints()),
|
||||
)
|
||||
err = chk.Check()
|
||||
clus.lg.Warn(
|
||||
"consistency check END",
|
||||
zap.String("checker", chk.Type().String()),
|
||||
zap.Strings("client-endpoints", chk.EtcdClientEndpoints()),
|
||||
zap.Error(err),
|
||||
)
|
||||
if err != nil {
|
||||
_, ok := exs[chk.Type()]
|
||||
if !ok {
|
||||
return err
|
||||
}
|
||||
clus.lg.Warn(
|
||||
"consistency check FAIL",
|
||||
"consistency check SKIP FAIL",
|
||||
zap.String("checker", chk.Type().String()),
|
||||
zap.Strings("client-endpoints", chk.EtcdClientEndpoints()),
|
||||
zap.Int("round", clus.rd),
|
||||
zap.Int("case", clus.cs),
|
||||
zap.Error(err),
|
||||
)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
clus.lg.Info(
|
||||
"consistency check ALL PASS",
|
||||
zap.Int("round", clus.rd),
|
||||
zap.Int("case", clus.cs),
|
||||
zap.String("desc", clus.cases[clus.cs].Desc()),
|
||||
)
|
||||
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
|
||||
// Send_INITIAL_START_ETCD bootstraps etcd cluster the very first time.
|
||||
|
||||
@@ -230,6 +230,13 @@ func (clus *Cluster) doRound() error {
|
||||
return fmt.Errorf("wait full health error: %v", err)
|
||||
}
|
||||
|
||||
checkerFailExceptions := []rpcpb.Checker{}
|
||||
switch fcase {
|
||||
case rpcpb.Case_SIGQUIT_AND_REMOVE_QUORUM_AND_RESTORE_LEADER_SNAPSHOT_FROM_SCRATCH:
|
||||
// TODO: restore from snapshot
|
||||
checkerFailExceptions = append(checkerFailExceptions, rpcpb.Checker_LEASE_EXPIRE)
|
||||
}
|
||||
|
||||
clus.lg.Info(
|
||||
"consistency check START",
|
||||
zap.Int("round", clus.rd),
|
||||
@@ -237,12 +244,11 @@ func (clus *Cluster) doRound() error {
|
||||
zap.Int("case-total", len(clus.cases)),
|
||||
zap.String("desc", fa.Desc()),
|
||||
)
|
||||
if err := clus.runCheckers(); err != nil {
|
||||
if err := clus.runCheckers(checkerFailExceptions...); err != nil {
|
||||
return fmt.Errorf("consistency check error (%v)", err)
|
||||
}
|
||||
|
||||
clus.lg.Info(
|
||||
"case PASS",
|
||||
"consistency check PASS",
|
||||
zap.Int("round", clus.rd),
|
||||
zap.Int("case", clus.cs),
|
||||
zap.Int("case-total", len(clus.cases)),
|
||||
|
||||
Reference in New Issue
Block a user