Merge remote-tracking branch 'origin/develop' into release-candidate

pull/19048/head
Diego Sampaio 5 years ago
commit dfeb656138
No known key found for this signature in database
GPG Key ID: E060152B30502562
  1. 1
      app/ldap/server/sync.js
  2. 23
      app/models/server/models/_oplogHandle.ts

@ -358,6 +358,7 @@ function syncUserAvatar(user, ldapUser) {
const file = {
userId: user._id,
type: 'image/jpeg',
size: avatar.length,
};
Meteor.runAsUser(user._id, () => {

@ -24,8 +24,23 @@ class OplogHandle {
}
const { mongo } = MongoInternals.defaultRemoteCollectionDriver();
const { version, storageEngine } = await mongo.db.command({ serverStatus: 1 });
return storageEngine?.name === 'wiredTiger' && semver.satisfies(semver.coerce(version) || '', '>=3.6.0');
try {
const { version, storageEngine } = await mongo.db.command({ serverStatus: 1 });
if (!storageEngine || storageEngine.name !== 'wiredTiger' || !semver.satisfies(semver.coerce(version) || '', '>=3.6.0')) {
return false;
}
await mongo.db.admin().command({ replSetGetStatus: 1 });
} catch (e) {
if (e.message.startsWith('not authorized')) {
console.info('Change Stream is available for your installation, give admin permissions to your database user to use this improved version.');
}
return false;
}
return true;
}
async start(): Promise<OplogHandle> {
@ -36,7 +51,7 @@ class OplogHandle {
try {
urlParsed = await urlParser(oplogUrl);
} catch (e) {
throw Error("$MONGO_OPLOG_URL must be set to the 'local' database of a Mongo replica set");
throw Error(`Error parsing database URL (${ oplogUrl })`);
}
if (!this.usingChangeStream && (!oplogUrl || urlParsed.dbName !== 'local')) {
@ -164,9 +179,7 @@ let oplogHandle: Promise<OplogHandle>;
// @ts-ignore
// eslint-disable-next-line no-undef
if (Package['disable-oplog']) {
const { mongo } = MongoInternals.defaultRemoteCollectionDriver();
try {
Promise.await(mongo.db.admin().command({ replSetGetStatus: 1 }));
oplogHandle = Promise.await(new OplogHandle().start());
} catch (e) {
console.error(e.message);

Loading…
Cancel
Save