chore(ci): gitignore bb-chonk-inputs.tar.gz to fix rebuild-patterns race#23178
Open
charlielye wants to merge 1 commit into
Open
chore(ci): gitignore bb-chonk-inputs.tar.gz to fix rebuild-patterns race#23178charlielye wants to merge 1 commit into
charlielye wants to merge 1 commit into
Conversation
`test_chonk_standalone_vks_havent_changed.sh` downloads the pinned IVC inputs tarball into its own working directory (relative path), which resolves to `barretenberg/cpp/scripts/bb-chonk-inputs.tar.gz`. Both `barretenberg/cpp/.rebuild_patterns` and `barretenberg/sol/.rebuild_patterns` include `^barretenberg/cpp/scripts/`, so during the small window the tarball is on disk any concurrent `cache_content_hash` call that uses those patterns aborts with `ERROR: Noticed changes to rebuild patterns during CI run: barretenberg/cpp/scripts/bb-chonk-inputs.tar.gz`. The script `trap`s cleanup on EXIT/SIGINT, so the file is normally short- lived — but on a hard kill (OOM, runner reboot) the leak is permanent for that runner. Gitignoring it makes `git ls-files --others --exclude-standard` skip it regardless, fixing both the live race and the hard-kill edge case. Recently surfaced in the merge queue for #23040 where it took out example_uniswap/aave_bridge/bob_token_contract Noir compiles in the docs build, which surfaced ~11 minutes later as a missing artifact.
Collaborator
Flakey Tests🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
`test_chonk_standalone_vks_havent_changed.sh` downloads the pinned IVC inputs tarball into its own working directory (relative path), which resolves to `barretenberg/cpp/scripts/bb-chonk-inputs.tar.gz`. Both `barretenberg/cpp/.rebuild_patterns` and `barretenberg/sol/.rebuild_patterns` include `^barretenberg/cpp/scripts/`, so during the small window the tarball is on disk any concurrent `cache_content_hash` call that uses those patterns aborts with:
```
ERROR: Noticed changes to rebuild patterns during CI run: barretenberg/cpp/scripts/bb-chonk-inputs.tar.gz
```
Why it's a real race
The script `trap`s cleanup on EXIT/SIGINT, so the file is normally short-lived — but on a hard kill (OOM, runner reboot) the leak is permanent for that runner. Gitignoring the file makes `git ls-files --others --exclude-standard` skip it regardless, fixing both the live race and the hard-kill edge case.
Recent occurrence
Took out the merge queue for #23040: example_uniswap / aave_bridge / bob_token_contract Noir compiles failed in the docs build during the retry; the missing artifacts surfaced ~11 minutes later as
```
ERROR: Compiled artifact not found: /root/aztec-packages/docs/target/example_uniswap-ExampleUniswap.json
```
Why not move the tarball to mktemp
That would also work, but a 1-line gitignore is minimal and defends against any future relative-path writers in `barretenberg/cpp/scripts/` that hit the same pattern.
Test plan