-
Notifications
You must be signed in to change notification settings - Fork 640
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
Port not included in authority, leading to routing failures #1475
Comments
Unfortunately, I had to remove the port from the authority to fix #1347. I never entirely understood what caused that bug, so it will take some work to figure out how to fix this issue without regressing on that one. |
Aah, that's quite an odd looking one indeed... For now at least The only other thing I can think of is that maybe this is an issue with the other Google API libraries, and not this gRPC one? It may have just surfaced a bug in how those libraries (or services behind them?) are handling gRPC requests? |
As far as I know, PubSub, the library referenced in the issue I linked, actually works just fine if you substitute |
I think I have found the problem. |
Aha, fantastic! Thanks for looking into that so so quickly. I look forward to seeing this released. |
That fix is out in version 1.1.0. |
I can confirm it's fixed the issue I was seeing with Linkerd - thanks very much! |
Problem description
Essentially, this looks the same as this issue: grpc/grpc-go#1120
In this case, @grpc/grpc-js doesn't include the port in the authority when making requests. If you're in an environment that uses the authority for routing (for example, Linkerd2), then routing will fail as the sidecar will proxy to port 80 (well, will fail unless your gRPC server is using port 80).
The
grpc
node package doesn't suffer from this issue, and does include the port number, I've currently reverted to using that (but nice work on making that a very easy transition!)Reproduction steps
@grpc/grpc-js
to make a request to a gRPC service.You could also specifically try to deploy a
@grpc/grpc-js
application into Kubernetes with Linkerd2, then try to make a request to a gRPC service from a@grpc/grpc-js
client, it should fail.For comparison, here's what
$ linkerd tap
looks like for the gRPC client application:With
grpc
:With
@grpc/grpc-js
:Environment
The text was updated successfully, but these errors were encountered: