Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Gone away
-
2.2.29
-
None
-
None
-
Rs: PRIMARY + 2 x SECONDAY
Node: 4.8.3
mongodb: 2.2.29,branch `fix-url-parse-options`
Description
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?
Attachments
Issue Links
- depends on
-
NODE-1290 SDAM Refactor
-
- Closed
-