From 3e67321aa742d1f972ea79d9b637a74ca9cc6be7 Mon Sep 17 00:00:00 2001 From: Olaoluwa Osuntokun Date: Sun, 9 Sep 2018 15:49:21 -0700 Subject: [PATCH] channeldb: fix bucket creation hierarchy in createChannelDB In this commit, we fix a bug in the bucket creation code in createChannelDB. This bug can cause migrations on older nodes to fail, as we expect the bucket to already have been created. With this commit, we ensure that all the buckets under the main node and edges bucket are properly created. Otherwise, a set of the newer migrations will fail to apply for nodes updating from 0.4. --- channeldb/db.go | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/channeldb/db.go b/channeldb/db.go index df611326a..964e85ab4 100644 --- a/channeldb/db.go +++ b/channeldb/db.go @@ -201,29 +201,63 @@ func createChannelDB(dbPath string) error { if _, err := tx.CreateBucket(openChannelBucket); err != nil { return err } - if _, err := tx.CreateBucket(closedChannelBucket); err != nil { return err } + if _, err := tx.CreateBucket(forwardingLogBucket); err != nil { + return err + } + + if _, err := tx.CreateBucket(fwdPackagesKey); err != nil { + return err + } + if _, err := tx.CreateBucket(invoiceBucket); err != nil { return err } + if _, err := tx.CreateBucket(paymentBucket); err != nil { + return err + } + if _, err := tx.CreateBucket(nodeInfoBucket); err != nil { return err } - if _, err := tx.CreateBucket(nodeBucket); err != nil { + nodes, err := tx.CreateBucket(nodeBucket) + if err != nil { return err } - if _, err := tx.CreateBucket(edgeBucket); err != nil { + _, err = nodes.CreateBucket(aliasIndexBucket) + if err != nil { return err } - if _, err := tx.CreateBucket(edgeIndexBucket); err != nil { + _, err = nodes.CreateBucket(nodeUpdateIndexBucket) + if err != nil { return err } - if _, err := tx.CreateBucket(graphMetaBucket); err != nil { + + edges, err := tx.CreateBucket(edgeBucket) + if err != nil { + return err + } + if _, err := edges.CreateBucket(edgeIndexBucket); err != nil { + return err + } + if _, err := edges.CreateBucket(edgeUpdateIndexBucket); err != nil { + return err + } + if _, err := edges.CreateBucket(channelPointBucket); err != nil { + return err + } + + graphMeta, err := tx.CreateBucket(graphMetaBucket) + if err != nil { + return err + } + _, err = graphMeta.CreateBucket(pruneLogBucket) + if err != nil { return err }