@@ -15,8 +15,6 @@ const deprecate = require('util').deprecate;
15
15
const BSON = require ( '../connection/utils' ) . retrieveBSON ( ) ;
16
16
const createCompressionInfo = require ( '../topologies/shared' ) . createCompressionInfo ;
17
17
const isRetryableError = require ( '../error' ) . isRetryableError ;
18
- const isNodeShuttingDownError = require ( '../error' ) . isNodeShuttingDownError ;
19
- const maxWireVersion = require ( '../utils' ) . maxWireVersion ;
20
18
const ClientSession = require ( '../sessions' ) . ClientSession ;
21
19
const MongoError = require ( '../error' ) . MongoError ;
22
20
const MongoServerSelectionError = require ( '../error' ) . MongoServerSelectionError ;
@@ -55,7 +53,7 @@ const SERVER_RELAY_EVENTS = [
55
53
] . concat ( CMAP_EVENT_NAMES ) ;
56
54
57
55
// all events we listen to from `Server` instances
58
- const LOCAL_SERVER_EVENTS = [ 'error' , ' connect', 'descriptionReceived' , 'close' , 'ended' ] ;
56
+ const LOCAL_SERVER_EVENTS = [ 'connect' , 'descriptionReceived' , 'close' , 'ended' ] ;
59
57
60
58
const STATE_CLOSING = common . STATE_CLOSING ;
61
59
const STATE_CLOSED = common . STATE_CLOSED ;
@@ -279,7 +277,7 @@ class Topology extends EventEmitter {
279
277
280
278
translateReadPreference ( options ) ;
281
279
const readPreference = options . readPreference || ReadPreference . primary ;
282
- this . selectServer ( readPreferenceServerSelector ( readPreference ) , options , ( err , server ) => {
280
+ this . selectServer ( readPreferenceServerSelector ( readPreference ) , options , err => {
283
281
if ( err ) {
284
282
this . close ( ) ;
285
283
@@ -292,28 +290,11 @@ class Topology extends EventEmitter {
292
290
return ;
293
291
}
294
292
295
- const errorHandler = err => {
296
- stateTransition ( this , STATE_CLOSED ) ;
297
- server . removeListener ( 'connect' , connectHandler ) ;
298
- if ( typeof callback === 'function' ) callback ( err , null ) ;
299
- } ;
300
-
301
- const connectHandler = ( _ , err ) => {
302
- stateTransition ( this , STATE_CONNECTED ) ;
303
- server . removeListener ( 'error' , errorHandler ) ;
304
- this . emit ( 'open' , err , this ) ;
305
- this . emit ( 'connect' , this ) ;
306
-
307
- if ( typeof callback === 'function' ) callback ( err , this ) ;
308
- } ;
309
-
310
- if ( server . s . state === STATE_CONNECTING ) {
311
- server . once ( 'error' , errorHandler ) ;
312
- server . once ( 'connect' , connectHandler ) ;
313
- return ;
314
- }
293
+ stateTransition ( this , STATE_CONNECTED ) ;
294
+ this . emit ( 'open' , err , this ) ;
295
+ this . emit ( 'connect' , this ) ;
315
296
316
- connectHandler ( ) ;
297
+ if ( typeof callback === 'function' ) callback ( err , this ) ;
317
298
} ) ;
318
299
}
319
300
@@ -794,9 +775,6 @@ function destroyServer(server, topology, options, callback) {
794
775
options = options || { } ;
795
776
LOCAL_SERVER_EVENTS . forEach ( event => server . removeAllListeners ( event ) ) ;
796
777
797
- // register a no-op for errors, we don't care now that we are destroying the server
798
- server . on ( 'error' , ( ) => { } ) ;
799
-
800
778
server . destroy ( options , ( ) => {
801
779
topology . emit (
802
780
'serverClosed' ,
@@ -843,7 +821,6 @@ function createAndConnectServer(topology, serverDescription, connectDelay) {
843
821
relayEvents ( server , topology , SERVER_RELAY_EVENTS ) ;
844
822
845
823
server . on ( 'descriptionReceived' , topology . serverUpdateHandler . bind ( topology ) ) ;
846
- server . on ( 'error' , serverErrorEventHandler ( server , topology ) ) ;
847
824
848
825
if ( connectDelay ) {
849
826
const connectTimer = setTimeout ( ( ) => {
@@ -904,21 +881,6 @@ function updateServers(topology, incomingServerDescription) {
904
881
}
905
882
}
906
883
907
- function serverErrorEventHandler ( server , topology ) {
908
- return function ( err ) {
909
- if ( topology . s . state === STATE_CLOSING || topology . s . state === STATE_CLOSED ) {
910
- return ;
911
- }
912
-
913
- if ( maxWireVersion ( server ) >= 8 && ! isNodeShuttingDownError ( err ) ) {
914
- resetServerState ( server , err ) ;
915
- return ;
916
- }
917
-
918
- resetServerState ( server , err , { clearPool : true } ) ;
919
- } ;
920
- }
921
-
922
884
function executeWriteOperation ( args , options , callback ) {
923
885
if ( typeof options === 'function' ) ( callback = options ) , ( options = { } ) ;
924
886
options = options || { } ;
@@ -972,30 +934,6 @@ function executeWriteOperation(args, options, callback) {
972
934
} ) ;
973
935
}
974
936
975
- /**
976
- * Resets the internal state of this server to `Unknown` by simulating an empty ismaster
977
- *
978
- * @private
979
- * @param {Server } server
980
- * @param {MongoError } error The error that caused the state reset
981
- * @param {object } [options] Optional settings
982
- * @param {boolean } [options.clearPool=false] Pool should be cleared out on state reset
983
- */
984
- function resetServerState ( server , error , options ) {
985
- options = Object . assign ( { } , { clearPool : false } , options ) ;
986
-
987
- if ( options . clearPool && server . s . pool ) {
988
- server . s . pool . clear ( ) ;
989
- }
990
-
991
- server . emit (
992
- 'descriptionReceived' ,
993
- new ServerDescription ( server . description . address , null , { error } )
994
- ) ;
995
-
996
- process . nextTick ( ( ) => server . requestCheck ( ) ) ;
997
- }
998
-
999
937
function translateReadPreference ( options ) {
1000
938
if ( options . readPreference == null ) {
1001
939
return ;
0 commit comments