From 812db0d198b52c36c6dd78364b9ef1c364857368 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Thu, 21 Nov 2019 11:12:41 -0800 Subject: [PATCH] grpc-js: Handle error when starting call on subchannel --- packages/grpc-js/package.json | 2 +- packages/grpc-js/src/channel.ts | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/grpc-js/package.json b/packages/grpc-js/package.json index 2d942ba8..c5574ebe 100644 --- a/packages/grpc-js/package.json +++ b/packages/grpc-js/package.json @@ -1,6 +1,6 @@ { "name": "@grpc/grpc-js", - "version": "0.6.12", + "version": "0.6.13", "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/channel.ts b/packages/grpc-js/src/channel.ts index 25daa468..6a859ed2 100644 --- a/packages/grpc-js/src/channel.ts +++ b/packages/grpc-js/src/channel.ts @@ -216,10 +216,17 @@ export class ChannelImplementation implements Channel { pickResult.subchannel!.getConnectivityState() === ConnectivityState.READY ) { - pickResult.subchannel!.startCallStream( - finalMetadata, - callStream - ); + try { + pickResult.subchannel!.startCallStream( + finalMetadata, + callStream + ); + } catch (error) { + callStream.cancelWithStatus( + Status.UNAVAILABLE, + 'Failed to start call on picked subchannel' + ); + } } else { callStream.cancelWithStatus( Status.UNAVAILABLE,