From 5679ba894bf306de4e2a26b9e0f8a18b37634626 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Wed, 18 Aug 2021 11:01:57 +0200 Subject: [PATCH] Merge pull request #4800 from overleaf/jpa-object-persistor-fix-404-handling [object-persistor] handle 404s of the entire delete operation in gcs GitOrigin-RevId: 41c5e70af069361a21adb53a6166081741666887 --- libraries/object-persistor/package-lock.json | 2 +- libraries/object-persistor/package.json | 2 +- libraries/object-persistor/src/GcsPersistor.js | 13 +++++-------- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/libraries/object-persistor/package-lock.json b/libraries/object-persistor/package-lock.json index 480acc1756..a2cfc9c742 100644 --- a/libraries/object-persistor/package-lock.json +++ b/libraries/object-persistor/package-lock.json @@ -1,6 +1,6 @@ { "name": "@overleaf/object-persistor", - "version": "1.0.0", + "version": "1.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/libraries/object-persistor/package.json b/libraries/object-persistor/package.json index 12b1e8e39f..bfa8323e56 100644 --- a/libraries/object-persistor/package.json +++ b/libraries/object-persistor/package.json @@ -1,6 +1,6 @@ { "name": "@overleaf/object-persistor", - "version": "1.0.0", + "version": "1.0.1", "description": "Module for storing objects in multiple backends, with fallback on 404 to assist migration between them", "main": "index.js", "scripts": { diff --git a/libraries/object-persistor/src/GcsPersistor.js b/libraries/object-persistor/src/GcsPersistor.js index e8181c7e62..bc9ed1772e 100644 --- a/libraries/object-persistor/src/GcsPersistor.js +++ b/libraries/object-persistor/src/GcsPersistor.js @@ -200,15 +200,12 @@ module.exports = class GcsPersistor extends AbstractPersistor { if (this.settings.unlockBeforeDelete) { await file.setMetadata({ eventBasedHold: false }) } - try { - await file.delete() - } catch (err) { - // ignore 404s: it's fine if the file doesn't exist. - if (err.code !== 404) { - throw err - } - } + await file.delete() } catch (err) { + // ignore 404s: it's fine if the file doesn't exist. + if (err.code === 404) { + return + } throw PersistorHelper.wrapError( err, 'error deleting GCS object',