Skip to content

Conversation

aaronbuchwald
Copy link
Collaborator

@aaronbuchwald aaronbuchwald commented Aug 18, 2025

Why this should be merged

This PR supports passing config bytes in to the VM for re-execution tests. This is one of the features outlined in #4108.

Users specify a predefined config to use when running the benchmark. The currently supported options are "defaultt"/"", "archive", and "firewood". This does not support passing arbitrary JSON atm because the name of the config is used as part of the Benchmark run name and supplied as a Prometheus label, which means we need a simple string and don't want to convert from JSON. If desired, we could add flags to provide both a full arbitrary JSON config and a name to use as the corresponding parameter.

You can see an example of how to add a new pre-defined config here: 99e9d48.

Note: this PR also migrates from using ARC to Blacksmith because running on limited infrastructure on ARC with a larger volume of jobs results in a much higher queueing delay with our current configuration.

This PR also reduces the execution range of the scheduled job because it is currently failing at the hour mark seemingly hitting some timeout at this point.

The README has been updated to include instructions on using the new CONFIG parameter, a section on adding a new entry to the schedule/PR matrix of runs, and using the GH CLI to trigger a run via manual dispatch:

https://github.com/ava-labs/avalanchego/blob/aaronbuchwald/reexecute-benchmark-configs/tests/reexecute/c/README.md

How this works

This adds a new flag to the benchmark execution tests that will be parsed as either the name of a pre-defined config or a string to interpret as the JSON config.

How this was tested

This was tested by adding each of the config options to run the range [101, 250k] on every PR and the schedule job here: https://github.com/ava-labs/avalanchego/actions/runs/17104240451/job/48508879094?pr=4180

Manual workflows as documented in the README to run a single job using GH CLI:

Tested PR triggers via CI, which are a mirror of the schedule run:

Need to be documented in RELEASES.md?

No

Base automatically changed from aaronbuchwald/archive-reexecute-post-state to master August 19, 2025 17:41
@aaronbuchwald aaronbuchwald self-assigned this Aug 20, 2025
@RodrigoVillar RodrigoVillar self-requested a review August 20, 2025 18:32
Comment on lines 87 to 91
run: |
# xz-utils might be present on some containers. Install if not present.
if ! command -v xz &> /dev/null; then
sudo apt-get update
sudo apt-get install -y xz-utils
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please strip trailing whitespace on these lines too.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed, sorry didn't realize the previous comment was intended multi-line

@aaronbuchwald aaronbuchwald added this pull request to the merge queue Aug 26, 2025
Merged via the queue into master with commit a0ccd66 Aug 26, 2025
36 checks passed
@aaronbuchwald aaronbuchwald deleted the aaronbuchwald/reexecute-benchmark-configs branch August 26, 2025 16:50
@github-project-automation github-project-automation bot moved this to Done 🎉 in avalanchego Aug 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done 🎉
Development

Successfully merging this pull request may close these issues.

3 participants