From: Brian Warner <warner@lothar.com>
Date: Sat, 21 Jul 2007 22:40:13 +0000 (-0700)
Subject: dirnode.build_manifest(): tolerate cycles in the directory graph
X-Git-Url: https://git.rkrishnan.org/%5B/frontends/reliability?a=commitdiff_plain;h=32fcf0b40520e3d644dee8357f83bb52bbb76c8a;p=tahoe-lafs%2Ftahoe-lafs.git

dirnode.build_manifest(): tolerate cycles in the directory graph
---

diff --git a/src/allmydata/dirnode.py b/src/allmydata/dirnode.py
index 18b7999b..cbc35964 100644
--- a/src/allmydata/dirnode.py
+++ b/src/allmydata/dirnode.py
@@ -354,7 +354,7 @@ class ImmutableDirectoryNode:
             dl = []
             for name, child in res.iteritems():
                 manifest.add(child.get_refresh_capability())
-                if IDirectoryNode.providedBy(child):
+                if IDirectoryNode.providedBy(child) and child not in manifest:
                     dl.append(self._build_manifest_from_node(child, manifest))
             if dl:
                 return defer.DeferredList(dl)