request failure using the pure js server code
See original GitHub issueProblem description
I’m seeing silent failures when using the pure js implementation but the grpc
package works fine.
Reproduction steps
I’m writing an authentication plugin to work with envoy (https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto). I have a local client I used to invoke the service locally (using the pure js code) and that works just fine. However when the service is invoked by envoy itself I get silent failures (callback is never invoked, connection is showing as reset on the envoy side). After scratching my head for far too long I decided to try the the c-based package and immediately it worked successfully.
Environment
- OS name, version and architecture: arch
- Node version 12
- Node installation method pacman
- Package name and version [e.g. gRPC@1.12.0]
"@grpc/grpc-js": "^1.3.2",
"grpc": "^1.24.10",
Additional context
tcpdump
appeared to show the pure js package responding at least to a HEAD
request coming from envoy (something my local client doesn’t do) but for some reason I’m not getting much more than that.
Thanks!
Issue Analytics
- State:
- Created 2 years ago
- Comments:33 (15 by maintainers)
Top GitHub Comments
The document I linked is an official specification of gRPC behavior, and as far as I know, all of the official libraries, including the one for Go, are implemented in accordance with it.
I want to comment on something you mentioned in the Node issue:
We intentionally do not do this. We don’t have any complex heuristics at all when handling target addresses. We just default to DNS, which is the behavior specified in this document: