-
Type: Bug
-
Resolution: Gone away
-
Priority: Major - P3
-
None
-
Affects Version/s: 2.2.29
-
Component/s: None
-
Environment:Rs: PRIMARY + 2 x SECONDAY
Node: 4.8.3
mongodb: 2.2.29,branch `fix-url-parse-options`
-
Empty show more show less
I have the following setup
{ "mongo1": { "type": "PRIMARY", "tags": { "continent": "america" } }, "mongo2": { "type": "SECONDARY", "tag": { "continent": "europe" } }, "mongo3": { "type": "SECONDARY", "tag": { "continent": "africa" } } }
and mongodb client is located in europe and trying to connect to africa with the following options
connectionUrl = 'mongodb://mongo1:27017/data?replicaSet=rs' { replicaSet: 'rs', connectWithNoPrimary: true, readPreference: new ReadPreference('secondary', [ { 'continent': 'africa' } ]) };
The client tries to connect, MongoClient.connect success handler is called and the client tries a find and recievies an error(because mongo3 is located in africa and there is a big latency between africa and europe):
TypeError: Cannot read property 'wireProtocolHandler' of null at nextFunction (/wk/bit/libs/perf/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:568:31) at Cursor.next [as _next] (/wk/bit/libs/perf/node_modules/mongodb/node_modules/mongodb-core/lib/cursor.js:692:3) at nextObject (/wk/bit/libs/perf/node_modules/mongodb/lib/cursor.js:679:8) at Cursor.next (/wk/bit/libs/perf/node_modules/mongodb/lib/cursor.js:269:12) at findOne (/wk/bit/libs/perf/node_modules/mongodb/lib/collection.js:1415:10) at Collection.findOne (/wk/bit/libs/perf/node_modules/mongodb/lib/collection.js:1401:44) at Context.<anonymous> (/wk/bit/libs/perf/test/test.js:58:38) at callFnAsync (/usr/local/lib/node_modules/mocha/lib/runnable.js:368:21) at Test.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:318:7) at Runner.runTest (/usr/local/lib/node_modules/mocha/lib/runner.js:444:10) at /usr/local/lib/node_modules/mocha/lib/runner.js:550:12 at next (/usr/local/lib/node_modules/mocha/lib/runner.js:361:14) at /usr/local/lib/node_modules/mocha/lib/runner.js:371:7 at next (/usr/local/lib/node_modules/mocha/lib/runner.js:295:14) at Immediate._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:339:5) at processImmediate [as _immediateCallback] (timers.js:396:17)
If I remove connectWithNoPrimary: true from options OR I add mongo3 server to connectionUrl:'mongodb://mongo1:27017,mongo3:27017/data?replicaSet=rs' everything will work.
What is the right behaviour?
- depends on
-
NODE-1290 SDAM Refactor
- Development Complete