From 937db7b4aa26854d2403d93ea44303655a6751d6 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Mon, 30 Mar 2020 18:03:53 +0200 Subject: [PATCH] Don't fail compactdb on corruption but log warning --- cmd/chantools/compactdb.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmd/chantools/compactdb.go b/cmd/chantools/compactdb.go index fffa435..d87f3a4 100644 --- a/cmd/chantools/compactdb.go +++ b/cmd/chantools/compactdb.go @@ -165,6 +165,13 @@ func (c *compactDBCommand) walkBucket(b *bbolt.Bucket, keypath [][]byte, return b.ForEach(func(k, v []byte) error { if v == nil { bkt := b.Bucket(k) + if bkt == nil { + log.Warnf("Could not read bucket '%s' (full " + + "path '%s') database is likely " + + "corrupted. Continuing anyway but " + + "skipping corrupt bucket.", k, keypath) + return nil + } return c.walkBucket( bkt, keypath, k, nil, bkt.Sequence(), fn, )