From f21f255debe8372d2a3bc710d4170d8a184aa142 Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Mon, 16 Jan 2023 10:43:43 +0000 Subject: [PATCH] Merge pull request #11096 from overleaf/bg-clear-first-op-timestamp-when-removing-updates clear first op timestamp when removing updates GitOrigin-RevId: d561cf94df158457e58b14823e4572baac56e6d3 --- services/project-history/app/js/SyncManager.js | 9 +++++++-- services/project-history/app/js/UpdatesProcessor.js | 6 ++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/services/project-history/app/js/SyncManager.js b/services/project-history/app/js/SyncManager.js index 9eefa258b9..98611f70ca 100644 --- a/services/project-history/app/js/SyncManager.js +++ b/services/project-history/app/js/SyncManager.js @@ -75,11 +75,16 @@ export function startHardResync(projectId, options, callback) { if (err) { return releaseLock(OError.tag(err)) } - RedisManager.destroyDocUpdatesQueue(projectId, function (err) { + RedisManager.clearFirstOpTimestamp(projectId, function (err) { if (err) { return releaseLock(OError.tag(err)) } - _startResyncWithoutLock(projectId, options, releaseLock) + RedisManager.destroyDocUpdatesQueue(projectId, function (err) { + if (err) { + return releaseLock(OError.tag(err)) + } + _startResyncWithoutLock(projectId, options, releaseLock) + }) }) }), function (error) { diff --git a/services/project-history/app/js/UpdatesProcessor.js b/services/project-history/app/js/UpdatesProcessor.js index f797a5c5dc..503e0b1fd6 100644 --- a/services/project-history/app/js/UpdatesProcessor.js +++ b/services/project-history/app/js/UpdatesProcessor.js @@ -82,10 +82,8 @@ export function processUpdatesForProject(projectId, callback) { OError.tag(error) } ErrorRecorder.record(projectId, queueSize, error, callback) - if (error == null) { - // clear the flush marker in the background if the queue was fully cleared - RedisManager.clearFirstOpTimestamp(projectId) - } + // clear the timestamp in the background if the queue is now empty + RedisManager.clearDanglingFirstOpTimestamp(projectId, () => {}) } ) }