Skip to content

fix: propagate load-test broadcast failures - #252

Open
Kewe63 wants to merge 1 commit into
t1protocol:canaryfrom
Kewe63:fix/251-propagate-loadtest-failures
Open

Kewe63 wants to merge 1 commit into
t1protocol:canaryfrom
Kewe63:fix/251-propagate-loadtest-failures

Conversation

@Kewe63

@Kewe63 Kewe63 commented Sep 19, 2026

Copy link
Copy Markdown

Description

  • Preserve every requested load-test broadcast attempt while tracking the first nonzero forge status.
  • Exit explicitly with the accumulated status after the loop.
  • Log the failed iteration and status for operator visibility.
  • Add a dependency-free Bash regression with a PATH-local fake forge.

Motivation and Context

The wrapper previously exposed only the final loop command's status. An earlier failed broadcast followed by a successful final broadcast therefore made the whole load test exit 0.

The fix retains the wrapper's load-generator behavior by continuing all requested iterations, but it can no longer report success if any broadcast failed.

Fixes #251.

The separate zero-run validation issue is deliberately left out of this PR.

How Has This Been Tested?

  • Pre-fix regression — failed as expected: intermediate fake broadcast returned 42, all 3 requested calls ran, but the wrapper returned 0.
  • bash script/test/7683/loadtesting/loadtest.failure-status.test.sh after the fix — passed:
    • all-success: status 0, 3 calls;
    • intermediate failure: status 42, 3 calls.
    • multiple failures: preserved the first status (41), 3 calls.
    • failure log includes the propagated status.
  • bash -n on the production wrapper and regression script — passed.
  • git diff --cached --check — passed.
  • Independent code review — passed with no blocking correctness, shell, security, or test findings; signal-derived status 143 propagation was also verified.
  • The regression uses a PATH-local fake forge, placeholder environment values, and an isolated temporary directory; it performs no RPC or chain operation.

Types of changes (remove all unchecked types)

  • Bug fix (non-breaking change which fixes an issue)
  • Test coverage

Checklist:

  • I assessed documentation impact; no documentation update is required.
  • I assessed deployment-script impact; no deployment script is changed.
  • I kept RUN_COUNT validation unchanged for the separate zero-run issue.

Run all requested load iterations while retaining and returning the first nonzero forge status so partial failures cannot be reported as success.\n\nFixes t1protocol#251.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Load-test wrapper hides intermediate broadcast failures

1 participant