]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - src/allmydata/frontends/magic_folder.py
Merge branch '2438.magic-folder-stable.9' of https://github.com/tahoe-lafs/tahoe...
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / frontends / magic_folder.py
index c9bdc6ce2bc3c4a8fc4afc96f916773612d360df..bd226156d23b81c576b988c32d1babe63c3d3512 100644 (file)
@@ -492,6 +492,10 @@ class WriteFileMixin(object):
         finally:
             os.umask(old_mask)
 
+        # FUDGE_SECONDS is used to determine if another process
+        # has written to the same file concurrently. This is described
+        # in the Earth Dragon section of our design document:
+        # docs/proposed/magic-folder/remote-to-local-sync.rst
         os.utime(replacement_path_u, (now, now - self.FUDGE_SECONDS))
         if is_conflict:
             print "0x00 ------------ <><> is conflict; calling _rename_conflicted_file... %r %r" % (abspath_u, replacement_path_u)
@@ -614,10 +618,11 @@ class Downloader(QueueMixin, WriteFileMixin):
                 if success:
                     if 'version' not in result[1]:
                         self._log("invalid remote metadata detected")
-                    else:
-                        if result[1]['version'] > max_version:
-                            node, metadata = result
-                            max_version = result[1]['version']
+                        continue
+
+                    if result[1]['version'] > max_version:
+                        node, metadata = result
+                        max_version = result[1]['version']
             return node, metadata
         collective_dirmap_d.addCallback(highest_version)
         return collective_dirmap_d
@@ -632,11 +637,12 @@ class Downloader(QueueMixin, WriteFileMixin):
 
                 file_node, metadata = listing_map[encoded_relpath_u]
                 local_version = self._get_local_latest(relpath_u)
+
                 if 'version' not in metadata:
-                    self._log("invalid tahoe remote metadata detected")
+                    self._log("invalid remote metadata detected for %r" % (relpath_u,))
                     continue
-                else:
-                    remote_version = metadata['version']
+
+                remote_version = metadata['version']
                 self._log("%r has local version %r, remote version %r" % (relpath_u, local_version, remote_version))
 
                 if local_version is None or local_version < remote_version: