From 868001e52cd7842b77769768be59c087d7077fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Thu, 22 Apr 2021 21:51:55 +0200 Subject: [PATCH] fix: skipLocked when updating lastSeen for toggles (second attempt) see: #795 for deatils. --- CHANGELOG.md | 4 ++++ src/lib/db/feature-toggle-store.js | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9aec3932b3..31db930d78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.17.6 + +- fix: skipLocked when updating lastSeen for toggles (second attempt) + ## 3.17.5 - fix: skipLocked when updating lastSeen for toggles diff --git a/src/lib/db/feature-toggle-store.js b/src/lib/db/feature-toggle-store.js index 4ba4bd11da..ed508eeca7 100644 --- a/src/lib/db/feature-toggle-store.js +++ b/src/lib/db/feature-toggle-store.js @@ -131,14 +131,19 @@ class FeatureToggleStore { return rows.map(this.rowToFeature); } - async lastSeenToggles(togleNames) { + async lastSeenToggles(toggleNames) { const now = new Date(); try { await this.db(TABLE) - .whereIn('name', togleNames) - .forUpdate() - .skipLocked() - .update({ last_seen_at: now }); + .update({ last_seen_at: now }) + .whereIn( + 'name', + this.db(TABLE) + .select('name') + .whereIn('name', toggleNames) + .forUpdate() + .skipLocked(), + ); } catch (err) { this.logger.error('Could not update lastSeen, error: ', err); }