From 61ffbbbe7873d7caafe4998095f86bd36e44b8db Mon Sep 17 00:00:00 2001 From: Anton Evangelatov Date: Thu, 22 Mar 2018 14:55:25 +0100 Subject: [PATCH] swarm/storage: close dbStored when we are retrieving from LevelDB --- swarm/storage/ldbstore.go | 1 + swarm/storage/memstore.go | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/swarm/storage/ldbstore.go b/swarm/storage/ldbstore.go index 6619a02d5b..e79d0f918a 100644 --- a/swarm/storage/ldbstore.go +++ b/swarm/storage/ldbstore.go @@ -707,6 +707,7 @@ func (s *LDBStore) get(key Key) (chunk *Chunk, err error) { } chunk = NewChunk(key, nil) + close(chunk.dbStored) decodeData(data, chunk) } else { err = ErrChunkNotFound diff --git a/swarm/storage/memstore.go b/swarm/storage/memstore.go index 7f7c282dc4..5a1ff04c57 100644 --- a/swarm/storage/memstore.go +++ b/swarm/storage/memstore.go @@ -230,6 +230,7 @@ func (s *MemStore) Get(hash Key) (chunk *Chunk, err error) { l := hash.bits(bitpos, node.bits) st := node.subtree[l] if st == nil { + log.Trace("memstore.get ErrChunkNotFound", "key", hash) return nil, ErrChunkNotFound } bitpos += node.bits @@ -251,6 +252,7 @@ func (s *MemStore) Get(hash Key) (chunk *Chunk, err error) { err = ErrChunkNotFound } + log.Trace("memstore.get return", "key", hash, "chunk", chunk, "err", err) return } @@ -298,11 +300,11 @@ func (s *MemStore) removeOldest() { } - log.Trace(fmt.Sprintf("Memstore Clean: Waiting for chunk %v to be saved", node.entry.Key.Log())) - <-node.entry.dbStored - log.Trace(fmt.Sprintf("Memstore Clean: Chunk %v saved to DBStore. Ready to clear from mem.", node.entry.Key.Log())) - if node.entry.ReqC == nil { + log.Trace(fmt.Sprintf("Memstore Clean: Waiting for chunk %v to be saved", node.entry.Key.Log())) + <-node.entry.dbStored + log.Trace(fmt.Sprintf("Memstore Clean: Chunk %v saved to DBStore. Ready to clear from mem.", node.entry.Key.Log())) + memstoreRemoveCounter.Inc(1) node.entry = nil s.entryCnt--