fix(loadtest): submit observed after quiet timeout
This commit is contained in:
@@ -222,8 +222,12 @@ func runAgent(ctx context.Context, cfg *Config, manifest *Manifest, machine, coo
|
|||||||
quietPeriod, _ := configDuration(cfg.DeliveryQuiet)
|
quietPeriod, _ := configDuration(cfg.DeliveryQuiet)
|
||||||
quietTimeout, _ := configDuration(cfg.DeliveryTimeout)
|
quietTimeout, _ := configDuration(cfg.DeliveryTimeout)
|
||||||
log.Printf("agent=%s waiting for %s of delivery quiescence", machine, quietPeriod)
|
log.Printf("agent=%s waiting for %s of delivery quiescence", machine, quietPeriod)
|
||||||
if err = waitForDeliveryQuiescence(ctx, run.recorder, run.callbackQueue, quietPeriod, quietTimeout); err != nil {
|
var quiescenceErr error
|
||||||
return err
|
if quiescenceErr = waitForDeliveryQuiescence(ctx, run.recorder, run.callbackQueue, quietPeriod, quietTimeout); quiescenceErr != nil {
|
||||||
|
if ctx.Err() != nil {
|
||||||
|
return quiescenceErr
|
||||||
|
}
|
||||||
|
log.Printf("agent=%s delivery quiescence wait timed out; continuing with observed submission: %v", machine, quiescenceErr)
|
||||||
}
|
}
|
||||||
observedLocal := run.recorder.unackedObservedMessages(ledger, start.Scenario)
|
observedLocal := run.recorder.unackedObservedMessages(ledger, start.Scenario)
|
||||||
if err = coord.submitObserved(ctx, machine, observedLocal); err != nil {
|
if err = coord.submitObserved(ctx, machine, observedLocal); err != nil {
|
||||||
@@ -247,6 +251,9 @@ func runAgent(ctx context.Context, cfg *Config, manifest *Manifest, machine, coo
|
|||||||
run.mu.Lock()
|
run.mu.Lock()
|
||||||
base.Errors = append(base.Errors, run.errors...)
|
base.Errors = append(base.Errors, run.errors...)
|
||||||
run.mu.Unlock()
|
run.mu.Unlock()
|
||||||
|
if quiescenceErr != nil {
|
||||||
|
base.Errors = append(base.Errors, quiescenceErr.Error())
|
||||||
|
}
|
||||||
// Include messages observed over WebSocket without a timely ctrl ACK. They
|
// Include messages observed over WebSocket without a timely ctrl ACK. They
|
||||||
// are confirmed server-side publishes and must participate in realtime
|
// are confirmed server-side publishes and must participate in realtime
|
||||||
// delivery accounting instead of being reported as unexpected traffic.
|
// delivery accounting instead of being reported as unexpected traffic.
|
||||||
|
|||||||
Reference in New Issue
Block a user