swarm/storage: add comparison towards leveldb.ErrNotFound (#19243)

* swarm/storage: add comparison towards leveldb.ErrNotFound

* swarm/storage: wrap leveldb ErrNotFound
ChrisChinchilla-patch-3
Anton Evangelatov 6 years ago committed by Viktor Trón
parent 2cfe0bed9f
commit bb55b0fb53
  1. 5
      swarm/storage/ldbstore.go
  2. 4
      swarm/storage/netstore.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
}
}

@ -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

Loading…
Cancel
Save