This commit is contained in:
Andris Reinman 2018-10-24 19:21:10 +03:00
parent 077ff4ddb5
commit decec4d2d5
6 changed files with 17 additions and 11 deletions

View file

@ -14,7 +14,9 @@ class GridstoreStorage {
this.gridfs = options.gridfs;
this.gridstore = new GridFSBucket(this.gridfs, {
bucketName: this.bucketName
bucketName: this.bucketName,
chunkSizeBytes: 255 * 1024,
writeConcern: { w: 'majority' }
});
}

View file

@ -162,7 +162,7 @@ module.exports = (server, messageHandler) => (mailbox, update, session, callback
time: new Date()
});
db.database.collection('messages').insertOne(message, err => {
db.database.collection('messages').insertOne(message, { w: 'majority' }, err => {
if (err) {
return cursor.close(() => {
updateQuota(() => callback(err));

View file

@ -70,7 +70,7 @@ class MailboxHandler {
}
});
this.database.collection('mailboxes').insertOne(mailboxData, (err, r) => {
this.database.collection('mailboxes').insertOne(mailboxData, { w: 'majority' }, (err, r) => {
if (err) {
if (err.code === 11000) {
return callback(null, 'ALREADYEXISTS');
@ -193,6 +193,7 @@ class MailboxHandler {
{
_id: mailbox
},
{ w: 'majority' },
err => {
if (err) {
return callback(err);

View file

@ -346,7 +346,7 @@ class MessageHandler {
messageData.thread = thread;
this.database.collection('messages').insertOne(messageData, err => {
this.database.collection('messages').insertOne(messageData, { w: 'majority' }, err => {
if (err) {
return rollback(err);
}
@ -436,7 +436,7 @@ class MessageHandler {
messageData.exp = true;
messageData.rdate = curtime.getTime() + consts.ARCHIVE_TIME;
this.database.collection('archived').insertOne(messageData, err => {
this.database.collection('archived').insertOne(messageData, { w: 'majority' }, err => {
if (err) {
if (err.code === 11000) {
// already archived, probably the same message from another mailbox
@ -459,6 +459,7 @@ class MessageHandler {
mailbox: messageData.mailbox,
uid: messageData.uid
},
{ w: 'majority' },
err => {
if (err) {
return callback(err);
@ -756,7 +757,7 @@ class MessageHandler {
}
}
this.database.collection('messages').insertOne(message, (err, r) => {
this.database.collection('messages').insertOne(message, { w: 'majority' }, (err, r) => {
if (err) {
return cursor.close(() => done(err));
}
@ -770,6 +771,7 @@ class MessageHandler {
mailbox: mailboxData._id,
uid: messageUid
},
{ w: 'majority' },
err => {
if (err) {
return cursor.close(() => done(err));
@ -911,7 +913,7 @@ class MessageHandler {
junk = -1;
}
this.database.collection('messages').insertOne(messageData, (err, r) => {
this.database.collection('messages').insertOne(messageData, { w: 'majority' }, (err, r) => {
if (err) {
if (err.code === 11000) {
// message already exists

View file

@ -633,6 +633,7 @@ class UserHandler {
password: hash
}
},
{ w: 'majority' },
err => {
if (err) {
log.error('DB', 'DBFAIL rehash user=%s error=%s', userData._id, err.message);
@ -1353,7 +1354,7 @@ class UserHandler {
userData.tagsview = data.tagsview;
}
this.users.collection('users').insertOne(userData, err => {
this.users.collection('users').insertOne(userData, { w: 'majority' }, err => {
if (err) {
log.error('DB', 'CREATEFAIL username=%s error=%s', data.username, err.message);
@ -1387,7 +1388,7 @@ class UserHandler {
this.database.collection('mailboxes').insertMany(
mailboxes,
{
w: 1,
w: 'majority',
ordered: false
},
err => {
@ -1420,7 +1421,7 @@ class UserHandler {
}
// insert alias address to email address registry
this.users.collection('addresses').insertOne(addressData, err => {
this.users.collection('addresses').insertOne(addressData, { w: 'majority' }, err => {
if (err) {
// try to rollback
this.users.collection('users').deleteOne({ _id: id }, () => false);

View file

@ -1,6 +1,6 @@
{
"name": "wildduck",
"version": "1.10.0",
"version": "1.10.1",
"description": "IMAP/POP3 server built with Node.js and MongoDB",
"main": "server.js",
"scripts": {