-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IPv6-Only Hosts Fail to Build #10711
Comments
I wonder if #9069 might help avoid this problem 🤔 |
Yes, index.crates.io is available on IPv6, so it should work. |
crates.io is still on Heroku. It is the biggest blocker so far I guess. |
Is this still an issue after cargo 1.70? See https://blog.rust-lang.org/2023/06/01/Rust-1.70.0.html#sparse-by-default-for-cratesio and https://doc.rust-lang.org/nightly/cargo/reference/registry-index.html#sparse-protocol If yes, what are the steps to reproduce? |
Hi @MarcoFalke. If I recall correctly, crates.io web API and download link redirections are served on Heroku, and Heroku doesn't support IPv6. To move on, we should consult crates.io team. Perhaps file an issue against rust-lang/crates.io repository or ask t-crates-io on Zulip. BTW, I found a Zulip topic about this. Maybe someone could ask there to verify if this issue is still relevant. |
@weihanglo Are you sure? Locally I do get a reply on an ipv6-only box:
Also, |
No. I am not sure. That's why I suggest asking crates-io team. I am not too familiar with the infra there.
That sounds great!! If you could help us verify and check with the crates-io team, it would be even better :) |
I've tried calling endpoints from a dualstack host, forcing curl to use IPv6 via # cargo related operations
curl -I https://crates.io/api/v1/crates/chrono/0.4.26/download -6
curl -I https://static.crates.io/crates/chrono/chrono-0.4.26.crate -6
curl -I https://index.crates.io/ch/ro/chrono -6
# rustup related operations
curl -I https://static.rust-lang.org -6 |
I disabled IPv4 and successfully use
Even though Heroku doesn't support IPv6, the CloudFront CDN in front of it does. GitHub still does not support v6, so it's necessary to use cargo 1.70+ to get sparse index by default. |
Problem
IPv6-only hosts are becoming more and more common with IPv4 cost skyrocketing. In some cases (eg Vultr's IPv6-only offerings) there's not any CG-NAT either, so
cargo
fails to run at all because the first thing it does is try to clone fromgithub.com
.Proposed Solution
Look at providing a CF-wrapped git-clone domain or look at alternative hosting providers like gitlab.
Notes
No response
The text was updated successfully, but these errors were encountered: