From aa812a066a94ebeaf3c31c127716f701891a047e Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Wed, 18 Jan 2023 11:48:18 +0000 Subject: [PATCH] Merge pull request #11296 from overleaf/jpa-pdf-caching-ignore-not-found [clsi] ignore file not found error when unlinking stale chunk GitOrigin-RevId: d7b78f7c2773102d7133f710ad7851542417b472 --- services/clsi/app/js/ContentCacheManager.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/services/clsi/app/js/ContentCacheManager.js b/services/clsi/app/js/ContentCacheManager.js index 8b50bddf18..a4197ed9af 100644 --- a/services/clsi/app/js/ContentCacheManager.js +++ b/services/clsi/app/js/ContentCacheManager.js @@ -352,7 +352,17 @@ class HashFileTracker { } await promiseMapWithLimit(10, hashes, async hash => { - await fs.promises.unlink(Path.join(this.contentDir, hash)) + try { + await fs.promises.unlink(Path.join(this.contentDir, hash)) + } catch (err) { + if (err?.code === 'ENOENT') { + // Ignore already deleted entries. The previous cleanup cycle may have + // been killed halfway through the deletion process, or before we + // flushed the state to disk. + } else { + throw err + } + } this.hashAge.delete(hash) reclaimedSpace += this.hashSize.get(hash) this.hashSize.delete(hash)