-
-
Notifications
You must be signed in to change notification settings - Fork 16.2k
nix: use curl with c-ares resolver #41609
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
Conversation
This reverts commit 5574df3. Instead we will use curl 7.60 with c-ares resolver.
The threaded resolver enabled in 7.60 causes name resolution timeouts with the way Nix uses curl API.
@GrahamcOfBorg build nix |
Success on x86_64-linux (full log) Attempted: nix Partial log (click to expand)
|
Success on x86_64-linux (full log) Attempted: nix Partial log (click to expand)
|
Success on aarch64-linux (full log) Attempted: nix Partial log (click to expand)
|
Success on aarch64-linux (full log) Attempted: nix Partial log (click to expand)
|
Success on x86_64-darwin (full log) Attempted: nix Partial log (click to expand)
|
Success on x86_64-darwin (full log) Attempted: nix Partial log (click to expand)
|
I like this a lot, but c-ares means no support for glibc's nss plugins that are sometimes used for mdns/NIS/maybe-other-things. I don't know how important that is for fetchurl, or if such things are expected to work with Nix (presumably they wouldn't in a sandbox, so only builtins.fetchurl?), but thought I'd mention it. |
Motivation for this change
This is an alternative to #41452. Apparently curl threaded resolver enabled in 7.60 imposes additional restrictions on usage of its API that are not present with its blocking or asynchronous resolvers.
Building with c-ares makes the asynchronous resolver the default.
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)Tested
nix-channel --update
does not wait for 10 seconds for DNS resolution.