From 1e36930e0b1a9baf58c504bca74cc9fd0ffcbd90 Mon Sep 17 00:00:00 2001 From: Christian Ebner Date: Mon, 4 Nov 2024 11:58:28 +0100 Subject: [PATCH] sync: fix premature return in snapshot skip filter logic While checking which snapshots to sync, the filter logic incorrectly included the first snapshot newer that the last synced one unconditionally, bypassing the transfer last check for that one snapshot. Following snapshots are correctly handled again. E.g. of an incorrect sync by excerpt of a task log provided by a user in the community forum [0], with transfer last set to 1: ``` skipped: 2 snapshot(s) (2024-09-29T18:00:28Z .. 2024-10-20T18:00:29Z) - older than the newest local snapshot skipped: 5 snapshot(s) (2024-10-28T19:00:28Z .. 2024-11-01T19:00:32Z) - due to transfer-last sync snapshot vm/110/2024-10-27T19:00:25Z ... sync snapshot vm/110/2024-11-02T19:00:23Z ``` Not only the last, but the first newer than newest and last were incorrectly synced. By dropping the early return, leading to incorrect inclusion of the snapshot, the transfer last condition is now correctly checked as well. Link to the issue reported in the community forum: [0] https://forum.proxmox.com/threads/156873/ Signed-off-by: Christian Ebner --- src/server/pull.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/server/pull.rs b/src/server/pull.rs index 3117f7d2..cc142719 100644 --- a/src/server/pull.rs +++ b/src/server/pull.rs @@ -534,7 +534,6 @@ async fn pull_group( } else if already_synced_skip_info.count > 0 { info!("{already_synced_skip_info}"); already_synced_skip_info.reset(); - return true; } if pos < cutoff && last_sync_time != dir.time {