summaryrefslogtreecommitdiff
path: root/larch
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-11-23 16:32:12 +0000
committerLars Wirzenius <liw@liw.fi>2012-11-23 16:32:12 +0000
commit63ad4737a6af23beade77b5486ed4ae78a976a6d (patch)
treefea983c8b454e97f7cbbf43dc670bc575b856fad /larch
parenta4e91cc2398c67dbafe0ef6bdc9923c46ca646b7 (diff)
downloadlarch-63ad4737a6af23beade77b5486ed4ae78a976a6d.tar.gz
Report what's being checked with more precision
Diffstat (limited to 'larch')
-rwxr-xr-xlarch/fsck.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/larch/fsck.py b/larch/fsck.py
index 3554d95..12c1c53 100755
--- a/larch/fsck.py
+++ b/larch/fsck.py
@@ -64,7 +64,7 @@ class CheckNode(WorkItem):
def __init__(self, fsck, node_id):
self.fsck = fsck
self.node_id = node_id
- self.name = 'node %s' % node_id
+ self.name = 'node %s in %s' % (node_id, self.fsck.forest_name)
def do(self):
tracing.trace('checking node %s' % self.node_id)
@@ -112,7 +112,7 @@ class CheckRoot(WorkItem):
def __init__(self, fsck, root_id):
self.fsck = fsck
self.root_id = root_id
- self.name = 'root node %s' % root_id
+ self.name = 'root node %s in %s' % (root_id, self.fsck.forest_name)
def do(self):
tracing.trace('checking root node %s' % self.root_id)
@@ -131,7 +131,7 @@ class CheckRecursively(WorkItem):
def __init__(self, fsck, root_id, seen):
self.fsck = fsck
self.root_id = root_id
- self.name = 'tree %s' % root_id
+ self.name = 'tree %s in %s' % (root_id, self.fsck.forest_name)
self.seen = seen
def do(self):
@@ -150,6 +150,9 @@ class CheckRecursively(WorkItem):
def walk(self, root_id):
def walker(node_id, minkey, maxkey, expected_type):
+ if node_id in self.seen:
+ return
+ self.seen.add(node_id)
expected_child = None
node = self.get_node(node_id)
if node:
@@ -157,7 +160,6 @@ class CheckRecursively(WorkItem):
if type(node) == larch.IndexNode:
tracing.trace('recursively found index node %s' % node.id)
keys = node.keys()
- tracing.trace('keys: %s' % repr(keys))
for i, key in enumerate(keys):
child_id = node[key]
if i + 1 < len(keys):
@@ -191,7 +193,7 @@ class CheckExtraNodes(WorkItem):
def __init__(self, fsck):
self.fsck = fsck
self.seen = set()
- self.name = 'extra nodes'
+ self.name = 'extra nodes in %s' % self.fsck.forest_name
def do(self):
tracing.trace('checking for extra nodes')
@@ -204,7 +206,7 @@ class CommitForest(WorkItem):
def __init__(self, fsck):
self.fsck = fsck
- self.name = 'committing fixes'
+ self.name = 'committing fixes to %s' % self.fsck.forest_name
def do(self):
tracing.trace('committing changes to forest')
@@ -217,6 +219,8 @@ class Fsck(object):
def __init__(self, forest, warning, error, fix):
self.forest = forest
+ self.forest_name = getattr(
+ forest.node_store, 'dirname', 'in-memory forest')
self.warning = warning
self.error = error
self.fix = fix