Skip to content

Conversation

@0t4u
Copy link

@0t4u 0t4u commented Mar 25, 2025

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.

  • By selecting this checkbox, I agree to license my contributions to this project under the license(s) described in the LICENSE file, and I have the right to do so or have received permission to do so by an employer or client I am producing work for whom has this right.

@emidoots
Copy link
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

@0t4u 0t4u changed the title Don't cache 4xx/5xx errors for files from stable releases Don't cache 4xx/5xx errors permanently for files from stable releases Mar 25, 2025
@0t4u
Copy link
Author

0t4u commented Mar 25, 2025

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

@0t4u
Copy link
Author

0t4u commented Apr 11, 2025

@emidoots could you please review again? Thanks

@emidoots
Copy link
Member

Will merge once that race condition gets fixed, my bad for being so late on the review here!

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.

2 participants