diff --git a/packages/grpc-js/package.json b/packages/grpc-js/package.json index bbca7caa..f5f71708 100644 --- a/packages/grpc-js/package.json +++ b/packages/grpc-js/package.json @@ -1,6 +1,6 @@ { "name": "@grpc/grpc-js", - "version": "1.14.0", + "version": "1.14.1", "description": "gRPC Library for Node - pure JS implementation", "homepage": "https://grpc.io/", "repository": "https://github.com/grpc/grpc-node/tree/master/packages/grpc-js", diff --git a/packages/grpc-js/src/transport.ts b/packages/grpc-js/src/transport.ts index 6fea1198..a1cca59e 100644 --- a/packages/grpc-js/src/transport.ts +++ b/packages/grpc-js/src/transport.ts @@ -720,7 +720,13 @@ export class Http2SubchannelConnector implements SubchannelConnector { initialWindowSize: options['grpc-node.flow_control_window'] ?? http2.getDefaultSettings?.()?.initialWindowSize ?? 65535, - } + }, + maxSendHeaderBlockLength: Number.MAX_SAFE_INTEGER, + /* By default, set a very large max session memory limit, to effectively + * disable enforcement of the limit. Some testing indicates that Node's + * behavior degrades badly when this limit is reached, so we solve that + * by disabling the check entirely. */ + maxSessionMemory: options['grpc-node.max_session_memory'] ?? Number.MAX_SAFE_INTEGER }; const session = http2.connect(`${scheme}://${targetPath}`, sessionOptions); // Prepare window size configuration for remoteSettings handler