From 934df69e9d571a2bcf289c8782263f35179f5847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Sat, 15 Jul 2023 23:30:19 -0400 Subject: [PATCH] test: log e11000 errors --- src/database/mongo/hash.js | 9 ++++++--- src/database/mongo/sets.js | 3 ++- src/database/mongo/sorted.js | 3 ++- src/database/mongo/sorted/add.js | 3 ++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/database/mongo/hash.js b/src/database/mongo/hash.js index cfa46f00a3..641e3ca35f 100644 --- a/src/database/mongo/hash.js +++ b/src/database/mongo/hash.js @@ -26,7 +26,8 @@ module.exports = function (module) { await module.client.collection('objects').updateOne({ _key: key }, { $set: writeData }, { upsert: true }); } } catch (err) { - if (err && err.message.startsWith('E11000 duplicate key error')) { + if (err && err.message.includes('E11000 duplicate key error')) { + console.log(new Error('e11000').stack, key, data); return await module.setObject(key, data); } throw err; @@ -61,7 +62,8 @@ module.exports = function (module) { await bulk.execute(); } } catch (err) { - if (err && err.message.startsWith('E11000 duplicate key error')) { + if (err && err.message.includes('E11000 duplicate key error')) { + console.log(new Error('e11000').stack, data); return await module.setObjectBulk(data); } throw err; @@ -256,7 +258,8 @@ module.exports = function (module) { // https://jira.mongodb.org/browse/SERVER-14322 // https://docs.mongodb.org/manual/reference/command/findAndModify/#upsert-and-unique-index console.log('test', err.message); - if (err && err.message.startsWith('E11000 duplicate key error')) { + if (err && err.message.includes('E11000 duplicate key error')) { + console.log(new Error('e11000').stack, key, field, value); return await module.incrObjectFieldBy(key, field, value); } throw err; diff --git a/src/database/mongo/sets.js b/src/database/mongo/sets.js index c4b9615c9e..42051bc2a4 100644 --- a/src/database/mongo/sets.js +++ b/src/database/mongo/sets.js @@ -51,7 +51,8 @@ module.exports = function (module) { try { await bulk.execute(); } catch (err) { - if (err && err.message.startsWith('E11000 duplicate key error')) { + if (err && err.message.includes('E11000 duplicate key error')) { + console.log(new Error('e11000').stack, keys, value); return await module.setsAdd(keys, value); } throw err; diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 12859ed6a4..4e03a93509 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -443,7 +443,8 @@ module.exports = function (module) { // https://github.com/NodeBB/NodeBB/issues/4467 // https://jira.mongodb.org/browse/SERVER-14322 // https://docs.mongodb.org/manual/reference/command/findAndModify/#upsert-and-unique-index - if (err && err.message.startsWith('E11000 duplicate key error')) { + if (err && err.message.includes('E11000 duplicate key error')) { + console.log(new Error('e11000').stack, key, increment, value); return await module.sortedSetIncrBy(key, increment, value); } throw err; diff --git a/src/database/mongo/sorted/add.js b/src/database/mongo/sorted/add.js index 13ee427c23..bc3a8bc8ec 100644 --- a/src/database/mongo/sorted/add.js +++ b/src/database/mongo/sorted/add.js @@ -19,7 +19,8 @@ module.exports = function (module) { try { await module.client.collection('objects').updateOne({ _key: key, value: value }, { $set: { score: parseFloat(score) } }, { upsert: true }); } catch (err) { - if (err && err.message.startsWith('E11000 duplicate key error')) { + if (err && err.message.includes('E11000 duplicate key error')) { + console.log(new Error('e11000').stack, key, score, value); return await module.sortedSetAdd(key, score, value); } throw err;