From bb55b0fb5318faf45f3774fac0b412d0594e1661 Mon Sep 17 00:00:00 2001 From: Anton Evangelatov Date: Fri, 8 Mar 2019 17:28:57 +0100 Subject: [PATCH] swarm/storage: add comparison towards leveldb.ErrNotFound (#19243) * swarm/storage: add comparison towards leveldb.ErrNotFound * swarm/storage: wrap leveldb ErrNotFound --- swarm/storage/ldbstore.go | 5 ++++- swarm/storage/netstore.go | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/swarm/storage/ldbstore.go b/swarm/storage/ldbstore.go index 766a9e031..fd5ec9e30 100644 --- a/swarm/storage/ldbstore.go +++ b/swarm/storage/ldbstore.go @@ -1005,7 +1005,10 @@ func (s *LDBStore) get(addr Address) (chunk Chunk, err error) { if err != nil { log.Trace("ldbstore.get chunk found but could not be accessed", "key", addr, "err", err) s.deleteNow(index, getIndexKey(addr), s.po(addr)) - return + if err == leveldb.ErrNotFound { + return nil, ErrChunkNotFound + } + return nil, err } } diff --git a/swarm/storage/netstore.go b/swarm/storage/netstore.go index 9e32578a8..cb6c1c9cf 100644 --- a/swarm/storage/netstore.go +++ b/swarm/storage/netstore.go @@ -29,6 +29,7 @@ import ( "github.com/ethereum/go-ethereum/swarm/spancontext" "github.com/opentracing/opentracing-go" olog "github.com/opentracing/opentracing-go/log" + "github.com/syndtr/goleveldb/leveldb" lru "github.com/hashicorp/golang-lru" ) @@ -167,7 +168,8 @@ func (n *NetStore) get(ctx context.Context, ref Address) (Chunk, func(context.Co chunk, err := n.store.Get(ctx, ref) if err != nil { - if err != ErrChunkNotFound { + // TODO: Fix comparison - we should be comparing against leveldb.ErrNotFound, this error should be wrapped. + if err != ErrChunkNotFound && err != leveldb.ErrNotFound { log.Debug("Received error from LocalStore other than ErrNotFound", "err", err) } // The chunk is not available in the LocalStore, let's get the fetcher for it, or create a new one