After days of trying to identify if Atlas or Meteor is the problem we’ve narrowed it down with the help of MongoDb customer service.
To recap:
When we switched from Compose.io to Atlas all of a sudden we couldn’t log into our app anymore. As this was amidst other problems with the free tier M0 (no Oplog support, MONGO_URL string problems, connection problems etc.) it took us longer to discover.
Our frontend app is constantly restarting every 1 minute 12 seconds, crashing 9 seconds after start. No notification or alert from Galaxy BTW (which I was expecting as you can set all sorts of alerts on other SaaS).
Here’s the log:
2017-06-14 00:54:23+01:00Note: you are using a pure-JavaScript implementation of bcrypt.
y7nb
2017-06-14 00:54:23+01:00While this implementation will work correctly, it is known to be
y7nb
2017-06-14 00:54:23+01:00approximately three times slower than the native implementation.
y7nb
2017-06-14 00:54:23+01:00In order to use the native implementation instead, run
y7nb
2017-06-14 00:54:23+01:00
y7nb
2017-06-14 00:54:23+01:00 **meteor npm install --save bcrypt**
y7nb
2017-06-14 00:54:23+01:00
y7nb
2017-06-14 00:54:23+01:00in the root directory of your application.
y7nb
2017-06-14 00:54:24+01:00
y7nb
2017-06-14 00:54:24+01:00/app/bundle/programs/server/node_modules/fibers/future.js:313
y7nb
2017-06-14 00:54:24+01:00 throw(ex);
y7nb
2017-06-14 00:54:24+01:00 ^
y7nb
2017-06-14 00:54:24+01:00**MongoError: no SNI name sent, make sure using a MongoDB 3.4+ driver/shell.**
y7nb
2017-06-14 00:54:24+01:00 at Object.Future.wait (/app/bundle/programs/server/node_modules/fibers/future.js:449:15)
y7nb
2017-06-14 00:54:24+01:00 at new MongoConnection (packages/mongo/mongo_driver.js:219:27)
y7nb
2017-06-14 00:54:24+01:00 at new MongoInternals.RemoteCollectionDriver (packages/mongo/remote_collection_driver.js:4:16)
y7nb
2017-06-14 00:54:24+01:00 at Object.<anonymous> (packages/mongo/remote_collection_driver.js:38:10)
y7nb
2017-06-14 00:54:24+01:00 at Object.defaultRemoteCollectionDriver (packages/underscore.js:784:19)
y7nb
2017-06-14 00:54:24+01:00 at new Mongo.Collection (packages/mongo/collection.js:103:40)
y7nb
2017-06-14 00:54:24+01:00 at AccountsServer.AccountsCommon (packages/accounts-base/accounts_common.js:23:18)
y7nb
2017-06-14 00:54:24+01:00 at new AccountsServer (packages/accounts-base/accounts_server.js:18:5)
y7nb
2017-06-14 00:54:24+01:00 at meteorInstall.node_modules.meteor.accounts-base.server_main.js (packages/accounts-base/server_main.js:9:12)
y7nb
2017-06-14 00:54:24+01:00 at fileEvaluate (packages/modules-runtime.js:181:9)
y7nb
2017-06-14 00:54:24+01:00 - - - - -
y7nb
2017-06-14 00:54:24+01:00 at Function.MongoError.create (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/error.js:31:11)
y7nb
2017-06-14 00:54:24+01:00 at /app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:483:72
y7nb
2017-06-14 00:54:24+01:00 at authenticateStragglers (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:429:16)
y7nb
2017-06-14 00:54:24+01:00 at [object Object].messageHandler (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/pool.js:463:5)
y7nb
2017-06-14 00:54:24+01:00 at TLSSocket.<anonymous> (/app/bundle/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb-core/lib/connection/connection.js:309:22)
y7nb
2017-06-14 00:54:24+01:00 at emitOne (events.js:77:13)
y7nb
2017-06-14 00:54:24+01:00 at TLSSocket.emit (events.js:169:7)
y7nb
2017-06-14 00:54:24+01:00 at readableAddChunk (_stream_readable.js:153:18)
y7nb
2017-06-14 00:54:24+01:00 at TLSSocket.Readable.push (_stream_readable.js:111:10)
y7nb
2017-06-14 00:54:24+01:00 at TLSWrap.onread (net.js:537:20)
y7nb
2017-06-14 00:54:25+01:00**Application exited with code: 1**
y7nb
2017-06-14 00:54:29+01:00**The container has crashed. A new container will be started to replace it.**
It might be related to this issue about bcrypt. See the highlighted in bold.
Atlas support says the node driver needs to be updated:
Please note that Atlas Free Tier requires to have a SNI name extension supplied with the TLS protocol. In order to fix this issue please make sure to use a driver (in your case NodeJS >=2.2.12) that is compatible with Atlas Free Tier.
It works perfectly as before when we run it directly from our IDE with --production flag. So it’s a problem in the Galaxy end.
So far no response from MDG as their customer service takes 1 business day to respond (even for paying customer)