-
Notifications
You must be signed in to change notification settings - Fork 4.5k
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
grpc.Dial fails to connect to unix domain socket when https_proxy is set #8207
Comments
Thanks for reporting this. @eshitachandwani probably the right fix is to also avoid the proxy from inside the delegating resolver when the target resolver produces addresses whose
That's how the transport decides to use a different dialer: grpc-go/internal/transport/http2_client.go Lines 159 to 177 in 6819ed7
In this case, we shouldn't even wait for the proxy resolver to resolve before producing those addresses. And we should make sure to add a test case for this scenario. |
As a quick fix until it's fixed you can look into grpc.WithNoProxy dial option. |
NOTE: if you are reporting is a potential security vulnerability or a crash,
please follow our CVE process at
https://github.com/grpc/proposal/blob/master/P4-grpc-cve-process.md instead of
filing an issue here.
Please see the FAQ in our main README.md, then answer the questions below
before submitting your issue.
What version of gRPC are you using?
google.golang.org/grpc v1.71.0
What version of Go are you using (
go version
)?go version go1.23.6 linux/amd64
What operating system (Linux, Windows, …) and version?
Linux (glinux, recent)
What did you do?
If possible, provide a recipe for reproducing the error.
Repro is available in Ongy/go-grpc-repro@3c23732
The repro is quite minimal and requires introspection of the debug output to recognize the error.
What did you expect to see?
I expect Dial to try and connect to a
unix:///...
domain socket and then fail due to some error of type "file doesn't exist"What did you see instead?
By looking at the debug output, I can determine that the proxy logic picks up the
https_proxy
for a URL of schemaunix://
. While this just leads to a different type of error in the repro, this leads to a real error in an application where the unix socket does exist.The text was updated successfully, but these errors were encountered: