From d7ed48a65770be2db34cd9dbfb287de13fe401a2 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Thu, 18 Oct 2018 17:56:25 +0200 Subject: [PATCH] Handle not found block in rocksdb.GetBlockInfo --- api/worker.go | 4 ++++ db/rocksdb.go | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/api/worker.go b/api/worker.go index a12fd90d..f59fa4bf 100644 --- a/api/worker.go +++ b/api/worker.go @@ -488,6 +488,10 @@ func (w *Worker) GetBlocks(page int, blocksOnPage int) (*Blocks, error) { if err != nil { return nil, err } + if bi == nil { + r.Blocks = r.Blocks[:i] + break + } r.Blocks[i-from] = *bi } glog.Info("GetBlocks page ", page, " finished in ", time.Since(start)) diff --git a/db/rocksdb.go b/db/rocksdb.go index 01243b04..e1dc2238 100644 --- a/db/rocksdb.go +++ b/db/rocksdb.go @@ -15,7 +15,6 @@ import ( "github.com/bsm/go-vlq" "github.com/golang/glog" "github.com/juju/errors" - "github.com/tecbot/gorocksdb" ) @@ -987,6 +986,10 @@ func (d *RocksDB) GetBlockInfo(height uint32) (*BlockInfo, error) { return nil, err } defer val.Free() + if val.Size() == 0 { + // block not found + return nil, nil + } bi, err := d.unpackBlockInfo(val.Data()) if err != nil { return nil, err