Repository navigation
Stop one CDN host hanging up from failing a download - #3
Merged
Merged
Conversation
haru on Windows failed a wallpaper download with "fetch failed: malformed response: headers ended early": a CDN server accepted the TLS connection and closed it without answering. - Build the host list the way SteamKit and DepotDownloader do: drop ISP caches restricted to other apps, Steam China servers and proxies, and address each server by its vhost. Falls back to every reachable server if the filter would leave none. - Fetch manifests from up to four hosts, demoting the ones that fail, instead of asking one host once. - Throw away pooled connections idle for 15s, and make the HTTP retry dial a fresh connection rather than pop another pooled one. - Name the host in fetch errors. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JPbjRcr2kuhRi1wBhGk1ax
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Currently processing new changes in this PR. This may take a few minutes, please wait... ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Requested by beingsuz · project thread
Before: downloading a Workshop item from haru on Windows failed with "fetch failed: malformed response: headers ended early". A CDN server accepted the connection and closed it without answering, and the manifest fetch asked exactly one host once, so that one server failed the whole download.
After: the manifest is fetched from up to four hosts, failing hosts are demoted, and the host list excludes servers that close the connection on requests they will not serve.
How:
cdn_hostsbuilds the host list the way SteamKit and DepotDownloader do: drops ISP caches restricted to other apps (allowed_app_ids), Steam China servers, proxies, and types other than CDN/SteamCache, and addresses each server by itsvhost(tapline recorded it but never used it). If the filter would leave nothing, it keeps every reachable server.fetch_manifest_from_poolreplaces the three single-host manifest fetches.Verified:
cargo clippy --workspace --all-targetsclean andcargo testpasses for tapline, tapline-cdn and tapline-rt-tokio on Linux, with new tests for the host filter. Not verified: no live download (Steam is unreachable from the sandbox), nothing run on Windows, and which of the three causes hit the reporter is inferred, not observed.🤖 Generated with Claude Code
https://claude.ai/code/session_01JPbjRcr2kuhRi1wBhGk1ax
Generated by Claude Code