bbit8
bbit8
The reason is this silly rate limiter in node.js, [50121](https://github.com/nodejs/node/pull/50121/commits/d14b7acc3d972b4becb2b3a27a868935eaea36b1#diff-3fd1a7bb4e650a6707f3be45ceca36e3d9213e12b0abd8ab5395dea562207b43R110) #define NGHTTP2_DEFAULT_STREAM_RESET_BURST 1000 #define NGHTTP2_DEFAULT_STREAM_RESET_RATE 33
@mcaruso85 @murgatroid99 I didn't dive deep. I just decreased node.js version from 18.18.2 to 18.18.1. Problem Solved! Something wrong with the rate limiter in nghttp2.
@murgatroid99 [handleTrailers](https://github.com/grpc/grpc-node/blob/bcea4b40bf79a244880247f06ffbf6d256563f1b/packages/grpc-js/src/subchannel-call.ts#L442) Should here call halfClose() instead of endCall() ? endCall will send RST_STREAM, not END_STREAM
> @bbit8 No. When the client receives trailers on a stream, that indicates that the stream has finished. `endCall` propagates the status up the stack, and cleans up the stream....
@murgatroid99 endCall() -> destroyHttp2Stream() -> http2Stream.close() . http2Stream.close() will send RST_STREAM. This is in the Node http2 document. [here](https://nodejs.org/api/http2.html#http2streamclosecode-callback). The rate limiter will send GOAWAY when receiving excessive amount of...