Add PR-triggered fuzzer workflow with strict validation#68
Add PR-triggered fuzzer workflow with strict validation#68sarthakaggarwal97 wants to merge 19 commits intovalkey-io:mainfrom
Conversation
492f106 to
2075099
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20750992e3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 055f8eac02
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 55d0a09c36
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
55d0a09 to
672170a
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 672170ae47
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
PR SummaryIntroduces a reusable GitHub Actions workflow that builds a Valkey PR merge ref and fans out multiple randomized fuzzer runs against the built binary. The CLI and orchestrator are extended with File Groups
Release NotesNew Feature
Chore
Documentation
|
67fae97 to
ab28922
Compare
| if failed_chaos_events: | ||
| failure_reasons.append(f"{len(failed_chaos_events)} chaos injection(s) failed") | ||
|
|
||
| if validation_results: |
There was a problem hiding this comment.
Bug: The guard if total_operations > 0 and not validation_results that reported "post-operation validation did not run" was removed, but the else keyword that gated the failed_validation_waves logic was also removed. Now failed_validation_waves is computed even when validation_results is an empty list (the falsy case), which silently skips reporting the missing-validation failure. If validation_results is empty and operations were executed, no failure reason is appended — a regression from the previous behavior that explicitly flagged this scenario.
Nikhil-Manglore
left a comment
There was a problem hiding this comment.
Overall looks good to me, just a minor comment. I didn't review the tests but everything else looks good.
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
When clusterConfig.valkey_binary is set but shutil.which cannot resolve it, raise FileNotFoundError instead of silently falling back to valkey-server from PATH or a source build. This prevents running fuzzer tests against the wrong Valkey binary/revision. Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
The old default '/usr/local/bin/valkey-server' was always truthy, so the fail-fast check raised FileNotFoundError on CI where valkey is not installed. Default to empty string so the fallback to PATH / source build still works when no binary is explicitly configured. Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
- orchestrator: use os.path.isfile + os.access for absolute paths instead of shutil.which, giving clear PermissionError when binary exists but is not executable - fuzzer_engine: remove false-positive 'validation did not run' failure when validation_results is empty due to legitimate early termination - update tests to match new binary resolution logic Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthakaggarwal97@gmail.com> Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Only skip the 'post-operation validation did not run' warning when operations failed (early termination). When all operations succeeded but validation_results is empty, still flag it as a failure. Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
…_from_source Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthakaggarwal97@gmail.com> Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
81e353a to
7021368
Compare
…_reasons Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
Summary
--valkey-binarysupport so workflow jobs run against the exact built Valkey binaryTesting
pytest tests/test_fuzzer_engine_strictness.py tests/test_state_validator.py tests/test_cli.py tests/test_orchestrator.py -q -k "not full_cluster_creation and not large"python -m compileall src tests/test_fuzzer_engine_strictness.py.github/workflows/pr-merge-fuzzer.ymlNotes
valkeyrepo because that is where the PR event originates