@@ -15,8 +15,6 @@ const deprecate = require('util').deprecate;
1515const BSON = require ( '../connection/utils' ) . retrieveBSON ( ) ;
1616const createCompressionInfo = require ( '../topologies/shared' ) . createCompressionInfo ;
1717const isRetryableError = require ( '../error' ) . isRetryableError ;
18- const isNodeShuttingDownError = require ( '../error' ) . isNodeShuttingDownError ;
19- const maxWireVersion = require ( '../utils' ) . maxWireVersion ;
2018const ClientSession = require ( '../sessions' ) . ClientSession ;
2119const MongoError = require ( '../error' ) . MongoError ;
2220const MongoServerSelectionError = require ( '../error' ) . MongoServerSelectionError ;
@@ -55,7 +53,7 @@ const SERVER_RELAY_EVENTS = [
5553] . concat ( CMAP_EVENT_NAMES ) ;
5654
5755// 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' ] ;
5957
6058const STATE_CLOSING = common . STATE_CLOSING ;
6159const STATE_CLOSED = common . STATE_CLOSED ;
@@ -279,7 +277,7 @@ class Topology extends EventEmitter {
279277
280278 translateReadPreference ( options ) ;
281279 const readPreference = options . readPreference || ReadPreference . primary ;
282- this . selectServer ( readPreferenceServerSelector ( readPreference ) , options , ( err , server ) => {
280+ this . selectServer ( readPreferenceServerSelector ( readPreference ) , options , err => {
283281 if ( err ) {
284282 this . close ( ) ;
285283
@@ -292,28 +290,11 @@ class Topology extends EventEmitter {
292290 return ;
293291 }
294292
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 ) ;
315296
316- connectHandler ( ) ;
297+ if ( typeof callback === 'function' ) callback ( err , this ) ;
317298 } ) ;
318299 }
319300
@@ -794,9 +775,6 @@ function destroyServer(server, topology, options, callback) {
794775 options = options || { } ;
795776 LOCAL_SERVER_EVENTS . forEach ( event => server . removeAllListeners ( event ) ) ;
796777
797- // register a no-op for errors, we don't care now that we are destroying the server
798- server . on ( 'error' , ( ) => { } ) ;
799-
800778 server . destroy ( options , ( ) => {
801779 topology . emit (
802780 'serverClosed' ,
@@ -843,7 +821,6 @@ function createAndConnectServer(topology, serverDescription, connectDelay) {
843821 relayEvents ( server , topology , SERVER_RELAY_EVENTS ) ;
844822
845823 server . on ( 'descriptionReceived' , topology . serverUpdateHandler . bind ( topology ) ) ;
846- server . on ( 'error' , serverErrorEventHandler ( server , topology ) ) ;
847824
848825 if ( connectDelay ) {
849826 const connectTimer = setTimeout ( ( ) => {
@@ -904,21 +881,6 @@ function updateServers(topology, incomingServerDescription) {
904881 }
905882}
906883
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-
922884function executeWriteOperation ( args , options , callback ) {
923885 if ( typeof options === 'function' ) ( callback = options ) , ( options = { } ) ;
924886 options = options || { } ;
@@ -972,30 +934,6 @@ function executeWriteOperation(args, options, callback) {
972934 } ) ;
973935}
974936
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-
999937function translateReadPreference ( options ) {
1000938 if ( options . readPreference == null ) {
1001939 return ;
0 commit comments