From 62ada2a2d09c9e1ed059013a21eb22dd2847b849 Mon Sep 17 00:00:00 2001 From: Matt Broadstone Date: Wed, 30 Oct 2019 15:14:03 -0400 Subject: [PATCH] fix(server): don't emit error in connect if closing/closed --- lib/core/sdam/server.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/core/sdam/server.js b/lib/core/sdam/server.js index 46ce8d2c34..0f00363ba4 100644 --- a/lib/core/sdam/server.js +++ b/lib/core/sdam/server.js @@ -166,6 +166,7 @@ class Server extends EventEmitter { relayEvents(this.s.pool, this, ['commandStarted', 'commandSucceeded', 'commandFailed']); stateTransition(this, STATE_CONNECTING); + this.s.pool.connect(connectEventHandler(this)); } @@ -465,10 +466,14 @@ function executeWriteOperation(args, options, callback) { function connectEventHandler(server) { return function(err, conn) { + if (server.s.state === STATE_CLOSING || server.s.state === STATE_CLOSED) { + return; + } + if (err) { server.emit('error', new MongoNetworkError(err)); - stateTransition(this, STATE_CLOSED); + stateTransition(server, STATE_CLOSED); server.emit('close'); return; }