Handle broken shared file error gracefully
authorritsute <me@branbit.com>
Mon, 13 Jan 2020 11:25:28 +0000 (19:25 +0800)
committerMichael Schuster <48932272+misch7@users.noreply.github.com>
Wed, 15 Jan 2020 22:07:14 +0000 (23:07 +0100)
Signed-off-by: Brandon <me@branbit.com>
Signed-off-by: Brandon <brandon.yeow@websparks.sg>
src/libsync/discoveryphase.cpp

index a4432ad93972df8a57133eb7fe44d3f1d57f1560..2767515376abc26ce2e221ca91b594051f51d8bc 100644 (file)
@@ -384,7 +384,14 @@ void DiscoverySingleDirectoryJob::directoryListingIteratedSlot(QString file, con
         propertyMapToFileStat(map, file_stat.get());
         if (file_stat->type == ItemTypeDirectory)
             file_stat->size = 0;
-        if (file_stat->type == ItemTypeSkip
+        if (remotePerm.hasPermission(RemotePermissions::IsShared) && file_stat->etag.isEmpty()) {
+            /* Handle broken shared file error gracefully instead of stopping sync in the desktop client.
+               DO not set _error */
+            qCWarning(lcDiscovery)
+                << "Missing path to a share :" << file << file_stat->path << file_stat->type << file_stat->size
+                << file_stat->modtime << file_stat->remotePerm.toString()
+                << file_stat->etag << file_stat->file_id;
+        } else if (file_stat->type == ItemTypeSkip
             || file_stat->size == -1
             || file_stat->remotePerm.isNull()
             || file_stat->etag.isEmpty()