diff --git a/CHANGELOG.md b/CHANGELOG.md index 07321562..a5f7227e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Changelog for NeoFS Node ### Changed ### Fixed +- Panic on write-cache's `Delete` operation (#1664) ### Removed diff --git a/pkg/local_object_storage/writecache/delete.go b/pkg/local_object_storage/writecache/delete.go index 4302e16e..61973c6f 100644 --- a/pkg/local_object_storage/writecache/delete.go +++ b/pkg/local_object_storage/writecache/delete.go @@ -26,9 +26,9 @@ func (c *cache) Delete(addr oid.Address) error { c.mtx.Lock() for i := range c.mem { if saddr == c.mem[i].addr { + c.curMemSize -= uint64(len(c.mem[i].data)) copy(c.mem[i:], c.mem[i+1:]) c.mem = c.mem[:len(c.mem)-1] - c.curMemSize -= uint64(len(c.mem[i].data)) c.mtx.Unlock() storagelog.Write(c.log, storagelog.AddressField(saddr), storagelog.OpField("in-mem DELETE")) return nil