Skip to content

Commit

Permalink
Add jitter to failpoint injection to cover periodily executed compaction
Browse files Browse the repository at this point in the history
Signed-off-by: Marek Siarkowicz <siarkowicz@google.com>
  • Loading branch information
serathius committed Nov 20, 2024
1 parent 4186283 commit dcec1d7
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions tests/robustness/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ import (

var testRunner = framework.E2eTestRunner

var (
WaitBeforeFailpoint = time.Second
WaitJitter = 200 * time.Millisecond
WaitAfterFailpoint = time.Second
)

func TestMain(m *testing.M) {
rand.Seed(time.Now().UnixNano())
testRunner.TestMain(m)
Expand Down Expand Up @@ -116,14 +122,14 @@ func runScenario(ctx context.Context, t *testing.T, s scenarios.TestScenario, lg
g.Go(func() error {
defer close(failpointInjected)
// Give some time for traffic to reach qps target before injecting failpoint.
time.Sleep(time.Second)
time.Sleep(randomizeTime(WaitBeforeFailpoint, WaitJitter))
fr, err := failpoint.Inject(ctx, t, lg, clus, s.Failpoint, baseTime, ids)
if err != nil {
t.Error(err)
cancel()
}
// Give some time for traffic to reach qps target after injecting failpoint.
time.Sleep(time.Second)
time.Sleep(randomizeTime(WaitAfterFailpoint, WaitJitter))
if fr != nil {
failpointInjected <- fr.FailpointInjection
failpointClientReport = fr.Client
Expand All @@ -147,6 +153,10 @@ func runScenario(ctx context.Context, t *testing.T, s scenarios.TestScenario, lg
return append(operationReport, append(failpointClientReport, watchReport...)...)
}

func randomizeTime(base time.Duration, jitter time.Duration) time.Duration {
return base - jitter + time.Duration(rand.Int63n(int64(jitter)*2))
}

func operationsMaxRevision(reports []report.ClientReport) int64 {
var maxRevision int64
for _, r := range reports {
Expand Down

0 comments on commit dcec1d7

Please sign in to comment.