diff --git a/index/cids.go b/index/cids.go index 2e089d4..10e84ba 100644 --- a/index/cids.go +++ b/index/cids.go @@ -56,6 +56,7 @@ func (ri *redisIndex) CidEntriesByBlocks(ctx context.Context, bs []blocks.Block) continue } if err = ri.getAndAddToEntries(ctx, entries, b.Cid()); err != nil { + entries.Release() return nil, err } visited[b.Cid().KeyString()] = struct{}{} diff --git a/index/loader.go b/index/loader.go index c8d92b7..b949b07 100644 --- a/index/loader.go +++ b/index/loader.go @@ -53,6 +53,12 @@ func (ri *redisIndex) CheckKey(ctx context.Context, key string) (exists bool, er if exists, release, err = ri.acquireKey(ctx, key); err != nil { return } + if exists { + if err = ri.updateKeyUsage(ctx, key); err != nil { + release() + return false, err + } + } release() return }