From cbb181c373415b74d4835403b59b66f205e5fd74 Mon Sep 17 00:00:00 2001 From: Marius van der Wijden Date: Tue, 14 Apr 2020 14:40:51 +0200 Subject: [PATCH] core/rawdb: use non-atomic load while holding mutex --- core/rawdb/freezer_table.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/rawdb/freezer_table.go b/core/rawdb/freezer_table.go index 14e57b9882..9cff4216ca 100644 --- a/core/rawdb/freezer_table.go +++ b/core/rawdb/freezer_table.go @@ -552,12 +552,11 @@ func (t *freezerTable) Retrieve(item uint64) ([]byte, error) { return nil, errOutOfBounds } // Ensure the item was not deleted from the tail either - offset := atomic.LoadUint32(&t.itemOffset) - if uint64(offset) > item { + if uint64(t.itemOffset) > item { t.lock.RUnlock() return nil, errOutOfBounds } - startOffset, endOffset, filenum, err := t.getBounds(item - uint64(offset)) + startOffset, endOffset, filenum, err := t.getBounds(item - uint64(t.itemOffset)) if err != nil { t.lock.RUnlock() return nil, err