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