From de72237ea5effc42d1590fce62c4cc8b587fb4dc Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Sat, 31 Aug 2024 11:43:08 +0000 Subject: [PATCH] fix: forcibly remove import locks if stuck --- .../lib/score-import/framework/import-locks/lock.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/src/lib/score-import/framework/import-locks/lock.ts b/server/src/lib/score-import/framework/import-locks/lock.ts index fa1077a22..aaec231ab 100644 --- a/server/src/lib/score-import/framework/import-locks/lock.ts +++ b/server/src/lib/score-import/framework/import-locks/lock.ts @@ -1,5 +1,5 @@ import db from "external/mongo/db"; -import { ONE_HOUR } from "lib/constants/time"; +import { ONE_DAY, ONE_HOUR } from "lib/constants/time"; import CreateLogCtx from "lib/logger/logger"; import type { integer } from "tachi-common"; @@ -24,6 +24,17 @@ export async function CheckAndSetOngoingImportLock(userID: integer) { locked: false, lockedAt: null, }); + } else if (lockExists.locked && lockExists.lockedAt! + ONE_DAY < Date.now()) { + logger.warn(`Removed import lock for ${userID} as it is ostensibly stuck.`); + await db["import-locks"].update( + { + userID, + }, + { + locked: false, + lockedAt: null, + } + ); } const lockWasSet = await db["import-locks"].findOneAndUpdate(