From cb9f96126f2c8f720498a2488af991569a7655a0 Mon Sep 17 00:00:00 2001 From: Michael Lumish Date: Mon, 8 Jun 2020 14:44:14 -0700 Subject: [PATCH] grpc-js: server: cull closed sessions from list, check for closed in tryShutdown --- packages/grpc-js/src/server.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/grpc-js/src/server.ts b/packages/grpc-js/src/server.ts index a6edee3b..22fb3c72 100644 --- a/packages/grpc-js/src/server.ts +++ b/packages/grpc-js/src/server.ts @@ -500,10 +500,12 @@ export class Server { } } - // If any sessions are active, close them gracefully. pendingChecks += this.sessions.size; this.sessions.forEach((session) => { - session.close(maybeCallback); + if (!session.closed) { + pendingChecks += 1; + session.close(maybeCallback); + } }); if (pendingChecks === 0) { callback(); @@ -608,6 +610,10 @@ export class Server { } this.sessions.add(session); + + session.on('close', () => { + this.sessions.delete(session); + }); }); } }