From 4a5818b7c7e4a9e20939c6ec21b6c3918ae2c70d Mon Sep 17 00:00:00 2001 From: abraunegg Date: Fri, 25 Sep 2020 05:22:12 +1000 Subject: [PATCH 1/2] Handle deletion events when inotify events are missing * Handle the missing inotify events for deleted items as a deletion event when running in --monitor --- src/sync.d | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/sync.d b/src/sync.d index 91f252fed..00f39ef36 100644 --- a/src/sync.d +++ b/src/sync.d @@ -3412,7 +3412,15 @@ final class SyncEngine } } else { // Appropriate message as we are in --monitor mode - log.vlog("The file appears to have been deleted locally .. but we are running in --monitor mode. This may have been 'moved' rather than 'deleted'"); + log.vlog("The file appears to have been deleted locally .. but we are running in --monitor mode. This may have been 'moved' on the local filesystem rather than being 'deleted'"); + log.vdebug("Most likely cause - 'inotify' event was missing for whatever action was taken locally or action taken when application was stopped"); + // A moved file will be uploaded as 'new', delete the old file and reference + if (noRemoteDelete) { + // do not process remote file delete + log.vlog("Skipping remote file delete as --upload-only & --no-remote-delete configured"); + } else { + uploadDeleteItem(item, path); + } } } else { // We are in a --dry-run situation, file appears to have deleted locally - this file may never have existed as we never downloaded it .. From 41196d391231f2c6165d8104dccb4ec7a8f9bbfa Mon Sep 17 00:00:00 2001 From: abraunegg Date: Fri, 25 Sep 2020 05:49:23 +1000 Subject: [PATCH 2/2] Update sync.d * update code to reduce repeat --- src/sync.d | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/sync.d b/src/sync.d index 00f39ef36..7091b70c0 100644 --- a/src/sync.d +++ b/src/sync.d @@ -3404,23 +3404,17 @@ final class SyncEngine // Not --dry-run situation if (!cfg.getValueBool("monitor")) { log.vlog("The file has been deleted locally"); - if (noRemoteDelete) { - // do not process remote file delete - log.vlog("Skipping remote file delete as --upload-only & --no-remote-delete configured"); - } else { - uploadDeleteItem(item, path); - } } else { // Appropriate message as we are in --monitor mode log.vlog("The file appears to have been deleted locally .. but we are running in --monitor mode. This may have been 'moved' on the local filesystem rather than being 'deleted'"); - log.vdebug("Most likely cause - 'inotify' event was missing for whatever action was taken locally or action taken when application was stopped"); - // A moved file will be uploaded as 'new', delete the old file and reference - if (noRemoteDelete) { - // do not process remote file delete - log.vlog("Skipping remote file delete as --upload-only & --no-remote-delete configured"); - } else { - uploadDeleteItem(item, path); - } + log.vdebug("Most likely cause - 'inotify' event was missing for whatever action was taken locally or action taken when application was stopped"); + } + // A moved file will be uploaded as 'new', delete the old file and reference + if (noRemoteDelete) { + // do not process remote file delete + log.vlog("Skipping remote file delete as --upload-only & --no-remote-delete configured"); + } else { + uploadDeleteItem(item, path); } } else { // We are in a --dry-run situation, file appears to have deleted locally - this file may never have existed as we never downloaded it ..