From fb100ac73128aa6b06efa9fd6738466fc674aa1b Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Sun, 19 Mar 2023 16:31:26 +0000 Subject: [PATCH 1/8] chore: incrementing version number - v2.8.9 --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index 416bd6e08a..a5efbd00a5 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "2.8.8", + "version": "2.8.9", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -192,4 +192,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From 18b2150edd1e9217e4eef165770e216cb8bc039f Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Sun, 19 Mar 2023 16:31:26 +0000 Subject: [PATCH 2/8] chore: update changelog for v2.8.9 --- CHANGELOG.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f08bfe346a..6feab404d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,54 @@ +#### v2.8.9 (2023-03-19) + +##### Chores + +* up cron (73a50d17) +* incrementing version number - v2.8.8 (b331b942) +* update changelog for v2.8.8 (c03d5db7) +* incrementing version number - v2.8.7 (3f8248d6) +* incrementing version number - v2.8.6 (af6ce447) +* incrementing version number - v2.8.5 (bff5ce2d) +* incrementing version number - v2.8.4 (a46b2bbc) +* incrementing version number - v2.8.3 (c20b20a7) +* incrementing version number - v2.8.2 (050e43f8) +* incrementing version number - v2.8.1 (727f879e) +* incrementing version number - v2.8.0 (8e77673d) +* incrementing version number - v2.7.0 (96cc0617) +* incrementing version number - v2.6.1 (7e52a7a5) +* incrementing version number - v2.6.0 (e7fcf482) +* incrementing version number - v2.5.8 (dec0e7de) +* incrementing version number - v2.5.7 (5836bf4a) +* incrementing version number - v2.5.6 (c7bd7dbf) +* incrementing version number - v2.5.5 (3509ed94) +* incrementing version number - v2.5.4 (e83260ca) +* incrementing version number - v2.5.3 (7e922936) +* incrementing version number - v2.5.2 (babcd17e) +* incrementing version number - v2.5.1 (ce3aa950) +* incrementing version number - v2.5.0 (01d276cb) +* incrementing version number - v2.4.5 (dd3e1a28) +* incrementing version number - v2.4.4 (d5525c87) +* incrementing version number - v2.4.3 (9c647c6c) +* incrementing version number - v2.4.2 (3aa7b855) +* incrementing version number - v2.4.1 (60cbd148) +* incrementing version number - v2.4.0 (4834cde3) +* incrementing version number - v2.3.1 (d2425942) +* incrementing version number - v2.3.0 (046ea120) + +##### Bug Fixes + +* thumb remove on windows, closes #11357 (767c1d1f) +* #11357 clear cache on thumb remove (a3a38e4b) +* closes #11352, try/catch rss feeds (cfd50272) +* closes #11343, don't crash if tags array is empty (56427e4f) + +##### Code Style Changes + +* more fixes (93aa43f7) + +##### Tests + +* openapi for thumbs (9e685e65) + #### v2.8.8 (2023-03-09) ##### Chores From c2961ad4cd4746b7cc393767059e8cac7dd8ffca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 20 Mar 2023 11:05:48 -0400 Subject: [PATCH 3/8] fix: closes #11173, move cache clear code if 2 deps were updated only one of them was cleared from require.cache. ie commander & lru-cache both has major version bump then only commander would be cleared from cache since it throws first --- src/cli/index.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/cli/index.js b/src/cli/index.js index 5eb9f4924c..18c5b88683 100644 --- a/src/cli/index.js +++ b/src/cli/index.js @@ -32,12 +32,6 @@ try { if (!semver.satisfies(version, defaultPackage.dependencies[packageName])) { const e = new TypeError(`Incorrect dependency version: ${packageName}`); e.code = 'DEP_WRONG_VERSION'; - // delete the module from require cache so it doesn't break rest of the upgrade - // https://github.com/NodeBB/NodeBB/issues/11173 - const resolvedModule = require.resolve(packageName); - if (require.cache[resolvedModule]) { - delete require.cache[resolvedModule]; - } throw e; } }; @@ -57,6 +51,16 @@ try { packageInstall.preserveExtraneousPlugins(); packageInstall.installAll(); + // delete the module from require cache so it doesn't break rest of the upgrade + // https://github.com/NodeBB/NodeBB/issues/11173 + const packages = ['nconf', 'async', 'commander', 'chalk', 'lodash', 'lru-cache']; + packages.forEach((packageName) => { + const resolvedModule = require.resolve(packageName); + if (require.cache[resolvedModule]) { + delete require.cache[resolvedModule]; + } + }); + const chalk = require('chalk'); console.log(`${chalk.green('OK')}\n`); } else { From 894f392bfc97b27f51843567ac4749960f4bb29f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 20 Mar 2023 11:17:05 -0400 Subject: [PATCH 4/8] lint: whitespace --- src/cli/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cli/index.js b/src/cli/index.js index 18c5b88683..3657549e3d 100644 --- a/src/cli/index.js +++ b/src/cli/index.js @@ -57,7 +57,7 @@ try { packages.forEach((packageName) => { const resolvedModule = require.resolve(packageName); if (require.cache[resolvedModule]) { - delete require.cache[resolvedModule]; + delete require.cache[resolvedModule]; } }); From e9a8e19508cea1764f75f2e14d65f32010f9b91b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 21 Mar 2023 10:13:21 -0400 Subject: [PATCH 5/8] chore: up composer-default --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index a5efbd00a5..92c5410c53 100644 --- a/install/package.json +++ b/install/package.json @@ -90,7 +90,7 @@ "@nodebb/bootswatch": "3.4.2", "nconf": "0.12.0", "nodebb-plugin-2factor": "5.1.2", - "nodebb-plugin-composer-default": "9.2.4", + "nodebb-plugin-composer-default": "9.2.5", "nodebb-plugin-dbsearch": "5.1.5", "nodebb-plugin-emoji": "4.0.6", "nodebb-plugin-emoji-android": "3.0.0", From 37b48b82a4bc7680c6e4c42647209010cb239c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 27 Mar 2023 10:38:53 -0400 Subject: [PATCH 6/8] fix: don't crash if event name is not a string --- src/socket.io/index.js | 7 ++++++- test/socket.io.js | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/socket.io/index.js b/src/socket.io/index.js index 60c7a8cd27..30e4e23581 100644 --- a/src/socket.io/index.js +++ b/src/socket.io/index.js @@ -120,7 +120,12 @@ async function onMessage(socket, payload) { return winston.warn('[socket.io] Empty method name'); } - const parts = eventName.toString().split('.'); + if (typeof eventName !== 'string') { + const escapedName = validator.escape(String(eventName)); + return callback({ message: `[[error:invalid-event, ${escapedName}]]` }); + } + + const parts = eventName.split('.'); const namespace = parts[0]; const methodToCall = parts.reduce((prev, cur) => { if (prev !== null && prev[cur] && (!prev.hasOwnProperty || prev.hasOwnProperty(cur))) { diff --git a/test/socket.io.js b/test/socket.io.js index 1a94a38f7c..333a9cea97 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -107,6 +107,15 @@ describe('socket.io', () => { }); }); + it('should return error for invalid eventName type', (done) => { + const eventName = ['topics.loadMoreTags']; + io.emit(eventName, function (err) { + const eventAsString = String(eventName); + assert.strictEqual(err.message, `[[error:invalid-event, ${eventAsString}]]`); + done(); + }); + }); + it('should get installed themes', (done) => { const themes = ['nodebb-theme-lavender', 'nodebb-theme-persona', 'nodebb-theme-vanilla']; io.emit('admin.themes.getInstalled', (err, data) => { From 1aff9cad91d516f2360ec265f381a22ee8178d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 27 Mar 2023 10:47:15 -0400 Subject: [PATCH 7/8] lint: fix arrow --- test/socket.io.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/socket.io.js b/test/socket.io.js index 333a9cea97..110258a0de 100644 --- a/test/socket.io.js +++ b/test/socket.io.js @@ -109,7 +109,7 @@ describe('socket.io', () => { it('should return error for invalid eventName type', (done) => { const eventName = ['topics.loadMoreTags']; - io.emit(eventName, function (err) { + io.emit(eventName, (err) => { const eventAsString = String(eventName); assert.strictEqual(err.message, `[[error:invalid-event, ${eventAsString}]]`); done(); From 830f142b7aea2e597294a84d52c05aab3a3539ca Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 27 Mar 2023 10:55:40 -0400 Subject: [PATCH 8/8] fix: #11403, remove loader.js crash counter logic --- loader.js | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/loader.js b/loader.js index 1d86d3a37e..9a1f0cdbad 100644 --- a/loader.js +++ b/loader.js @@ -30,9 +30,7 @@ const output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compres const silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false; let numProcs; const workers = []; -const Loader = { - timesStarted: 0, -}; +const Loader = {}; const appPath = path.join(__dirname, 'app.js'); Loader.init = function () { @@ -57,21 +55,6 @@ Loader.displayStartupMessages = function () { Loader.addWorkerEvents = function (worker) { worker.on('exit', (code, signal) => { - if (code !== 0) { - if (Loader.timesStarted < numProcs * 3) { - Loader.timesStarted += 1; - if (Loader.crashTimer) { - clearTimeout(Loader.crashTimer); - } - Loader.crashTimer = setTimeout(() => { - Loader.timesStarted = 0; - }, 10000); - } else { - console.log(`${numProcs * 3} restarts in 10 seconds, most likely an error on startup. Halting.`); - process.exit(); - } - } - console.log(`[cluster] Child Process (${worker.pid}) has exited (code: ${code}, signal: ${signal})`); if (!(worker.suicide || code === 0)) { console.log('[cluster] Spinning up another process...');