Don't cache 4xx/5xx errors permanently for files from stable releases#4
Open
0t4u wants to merge 3 commits intohexops:mainfrom
Open
Don't cache 4xx/5xx errors permanently for files from stable releases#40t4u wants to merge 3 commits intohexops:mainfrom
0t4u wants to merge 3 commits intohexops:mainfrom
Conversation
Member
|
as-is, this change would open a vulnerability which allows anyone to ask the server to spam ziglang.org with requests for versions that are not expected to exist. A better solution to this would be to continue caching 4xx/5xx errors, but use a cache expiry duration so that the cached response expires after some time, e.g. 15 minutes |
Author
|
Please let me know if the latest change addresses your concerns, I have set the expiry at 5 minutes for now, which seems like a good amount of time for files to propagate on the upstream |
Author
|
@emidoots could you please review again? Thanks |
emidoots
approved these changes
Jun 28, 2025
emidoots
reviewed
Jun 28, 2025
Member
|
Will merge once that race condition gets fixed, my bad for being so late on the review here! |
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.
Wrench's Zig mirror service currently caches 404 errors for files that are expected to be available, like files from releases (see: hexops/mach#1416, https://github.com/mlugg/setup-zig/issues/33).
This PR checks if the requested file belongs to a stable version and has a version number greater than 0.5.0 (see: https://github.com/mlugg/setup-zig#adding-a-mirror), and prevents caching 4xx/5xx errors for those files, since it is expected that these files should be available later.
As a followup, we should also check if the version of the file being requested corresponds to the version string of the latest Zig master or latest Mach nominated version and not cache 4xx/5xx errors for those as well.
A better approach may be to read the index file and ensure all versions present there won't have their 4xx/5xx errors cached.