From 256cf7c84edd38ed70c0e9aa9bd8049279762b02 Mon Sep 17 00:00:00 2001 From: Carmen Fan Date: Thu, 20 Feb 2025 11:11:04 +0000 Subject: [PATCH 1/2] ISSUE #5418 kill the server if we run into Topology is closed --- backend/src/v4/response_codes.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/src/v4/response_codes.js b/backend/src/v4/response_codes.js index f5c20d7b330..21e2543c65e 100644 --- a/backend/src/v4/response_codes.js +++ b/backend/src/v4/response_codes.js @@ -416,6 +416,10 @@ */ responseCodes.respond = function (place, req, res, next, resCode, extraInfo, format, cache, customHeaders) { + // Topology is closed mongo error is typically coming from the session management and the library + // doesn't let us recover from it (so far). So kill this pod and let it respawn. + const killServer = resCode?.name === "MongoError" && resCode?.message?.includes && resCode.message.includes("Topology is closed") ? resCode : false; + resCode = utils.mongoErrorToResCode(resCode); if (!resCode || valid_values.indexOf(resCode.value) === -1) { @@ -490,6 +494,10 @@ // log bandwidth and http status code systemLogger.logInfo(genResponseLogging(resCode, meta, req), undefined, logLabels.network); } + + if (killServer) { + return Promise.reject(killServer); + } }; responseCodes.writeStreamRespond = function (place, req, res, next, readStream, customHeaders) { From 65fa8db70779c6542bfb10729b6dc53cca3f4726 Mon Sep 17 00:00:00 2001 From: Carmen Fan Date: Thu, 20 Feb 2025 14:31:49 +0000 Subject: [PATCH 2/2] Version 5.14.2 --- backend/VERSION.json | 2 +- backend/package.json | 2 +- backend/src/v4/routes/apidoc.json | 2 +- frontend/package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/VERSION.json b/backend/VERSION.json index 9a78a2190c5..35ff3eaf152 100644 --- a/backend/VERSION.json +++ b/backend/VERSION.json @@ -1,4 +1,4 @@ -{ "VERSION" : "5.14.1", +{ "VERSION" : "5.14.2", "unity" : { "current" : "5.20.0", "supported": [] diff --git a/backend/package.json b/backend/package.json index 35c9f9b13b5..7bd6718977d 100644 --- a/backend/package.json +++ b/backend/package.json @@ -1,6 +1,6 @@ { "name": "3drepo.io", - "version": "5.14.1", + "version": "5.14.2", "engines": { "node": "18.x.x" }, diff --git a/backend/src/v4/routes/apidoc.json b/backend/src/v4/routes/apidoc.json index 9bd8c0b0653..62ccda57b0c 100644 --- a/backend/src/v4/routes/apidoc.json +++ b/backend/src/v4/routes/apidoc.json @@ -1,3 +1,3 @@ { - "version": "5.14.1" + "version": "5.14.2" } diff --git a/frontend/package.json b/frontend/package.json index a6c2a266744..d3b42878364 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "3drepo.io-frontend", - "version": "5.14.1", + "version": "5.14.2", "description": "The frontend for 3drepo.io", "engines": { "node": "18.x.x"