Skip to content

Commit 7b75212

Browse files
committed
chore: ensure possibility for concurrent spammers if time window is short
1 parent 552596a commit 7b75212

2 files changed

Lines changed: 12 additions & 20 deletions

File tree

apps/loadgen/cmd/start.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"os"
99
"os/signal"
1010
"strconv"
11-
"sync"
1211
"syscall"
1312
"time"
1413

@@ -75,10 +74,7 @@ func runScheduler(parent context.Context, cfg startConfig) error {
7574
return err
7675
}
7776

78-
var mu sync.Mutex
7977
runWorkload := func(label, matrixPath string, txCount int) {
80-
mu.Lock()
81-
defer mu.Unlock()
8278
log.Printf("==> %s workload starting (%d tx)", label, txCount)
8379
if err := internal.ExecuteMatrixWithOverridesFromFile(ctx, matrixPath, api, txCount); err != nil {
8480
log.Printf("%s workload error: %v", label, err)
@@ -102,12 +98,10 @@ func runScheduler(parent context.Context, cfg startConfig) error {
10298
case <-ctx.Done():
10399
log.Printf("shutting down...")
104100
burstTimer.Stop()
105-
mu.Lock()
106101
log.Printf("cleaning up spammers")
107102
if err := internal.DeleteAllSpammers(api); err != nil {
108103
log.Printf("warning: shutdown cleanup failed: %v", err)
109104
}
110-
mu.Unlock()
111105
return nil
112106

113107
case <-ticker.C:

apps/loadgen/internal/runner.go

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,6 @@ func runCheck(ctx context.Context, api SpamoorClient, timeout time.Duration) err
142142
return fmt.Errorf("waiting for spamoor sync: %w", err)
143143
}
144144

145-
if err := DeleteAllSpammers(api); err != nil {
146-
return fmt.Errorf("cleanup: %w", err)
147-
}
148-
defer func() { _ = DeleteAllSpammers(api) }()
149-
150145
baselineSent, baselineFailed, err := getSpamoorCounters(api)
151146
if err != nil {
152147
return fmt.Errorf("get baseline metrics: %w", err)
@@ -169,6 +164,11 @@ func runCheck(ctx context.Context, api SpamoorClient, timeout time.Duration) err
169164
return fmt.Errorf("create spammer: %w", err)
170165
}
171166
log.Printf("created check spammer (id=%d)", id)
167+
defer func() {
168+
if dErr := api.DeleteSpammer(id); dErr != nil {
169+
log.Printf("warning: cleanup check spammer %d failed: %v", id, dErr)
170+
}
171+
}()
172172

173173
checkCtx, cancel := context.WithTimeout(ctx, timeout)
174174
defer cancel()
@@ -198,15 +198,6 @@ func runEntryWithWait(ctx context.Context, api SpamoorClient, entry Entry, wait
198198
log.Printf("[%s] scenario=%s spammers=%d count_per=%d total=%d",
199199
entry.TestName, entry.Scenario, entry.NumSpammers, entry.CountPerSpammer, totalCount)
200200

201-
if err := DeleteAllSpammers(api); err != nil {
202-
return fmt.Errorf("delete stale spammers: %w", err)
203-
}
204-
defer func() {
205-
if err := DeleteAllSpammers(api); err != nil {
206-
log.Printf("[%s] warning: cleanup failed: %v", entry.TestName, err)
207-
}
208-
}()
209-
210201
baselineSent, baselineFailed, err := getSpamoorCounters(api)
211202
if err != nil {
212203
return fmt.Errorf("get baseline metrics: %w", err)
@@ -224,6 +215,13 @@ func runEntryWithWait(ctx context.Context, api SpamoorClient, entry Entry, wait
224215
spammerIDs = append(spammerIDs, id)
225216
log.Printf("[%s] created spammer %s (id=%d)", entry.TestName, name, id)
226217
}
218+
defer func() {
219+
for _, id := range spammerIDs {
220+
if err := api.DeleteSpammer(id); err != nil {
221+
log.Printf("[%s] warning: cleanup spammer %d failed: %v", entry.TestName, id, err)
222+
}
223+
}
224+
}()
227225

228226
for _, id := range spammerIDs {
229227
sp, err := api.GetSpammer(id)

0 commit comments

Comments
 (0)