mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #18046 from serathius/robustness-trigger-fail
Allow gofail trigger to fail as long as the member stops running
This commit is contained in:
commit
f8d8f6a10c
@ -90,21 +90,30 @@ func (f goPanicFailpoint) Inject(ctx context.Context, t *testing.T, lg *zap.Logg
|
|||||||
lg.Info("goFailpoint setup failed", zap.String("failpoint", f.Name()), zap.Error(err))
|
lg.Info("goFailpoint setup failed", zap.String("failpoint", f.Name()), zap.Error(err))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if !member.IsRunning() {
|
|
||||||
// TODO: Check member logs that etcd not running is caused panic caused by proper gofailpoint.
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if f.trigger != nil {
|
if f.trigger != nil {
|
||||||
|
for member.IsRunning() {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return reports, ctx.Err()
|
||||||
|
default:
|
||||||
|
}
|
||||||
var r []report.ClientReport
|
var r []report.ClientReport
|
||||||
lg.Info("Triggering gofailpoint", zap.String("failpoint", f.Name()))
|
lg.Info("Triggering gofailpoint", zap.String("failpoint", f.Name()))
|
||||||
r, err = f.trigger.Trigger(ctx, t, member, clus, baseTime, ids)
|
r, err = f.trigger.Trigger(ctx, t, member, clus, baseTime, ids)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lg.Info("gofailpoint trigger failed", zap.String("failpoint", f.Name()), zap.Error(err))
|
lg.Info("gofailpoint trigger failed", zap.String("failpoint", f.Name()), zap.Error(err))
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
if r != nil {
|
if r != nil {
|
||||||
reports = append(reports, r...)
|
reports = append(reports, r...)
|
||||||
}
|
}
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
lg.Info("Waiting for member to exit", zap.String("member", member.Config().Name))
|
lg.Info("Waiting for member to exit", zap.String("member", member.Config().Name))
|
||||||
err = member.Wait(ctx)
|
err = member.Wait(ctx)
|
||||||
if err != nil && !strings.Contains(err.Error(), "unexpected exit code") {
|
if err != nil && !strings.Contains(err.Error(), "unexpected exit code") {
|
||||||
@ -112,7 +121,6 @@ func (f goPanicFailpoint) Inject(ctx context.Context, t *testing.T, lg *zap.Logg
|
|||||||
return reports, fmt.Errorf("member didn't exit as expected: %v", err)
|
return reports, fmt.Errorf("member didn't exit as expected: %v", err)
|
||||||
}
|
}
|
||||||
lg.Info("Member exited as expected", zap.String("member", member.Config().Name))
|
lg.Info("Member exited as expected", zap.String("member", member.Config().Name))
|
||||||
}
|
|
||||||
|
|
||||||
if lazyfs := member.LazyFS(); lazyfs != nil {
|
if lazyfs := member.LazyFS(); lazyfs != nil {
|
||||||
lg.Info("Removing data that was not fsynced")
|
lg.Info("Removing data that was not fsynced")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user