Skip to content
This repository was archived by the owner on Jan 20, 2026. It is now read-only.

Commit f369e78

Browse files
authored
Revert "Merge pull request #105 from sei-protocol/PebbleSurfaceErrors" (#118)
This reverts commit de1d7fe, reversing changes made to 2533953. ## Describe your changes and provide context - Revert surfacing errors from db layer since the rpc / keeper / store layer hard codes a lot of handling of record not found and there needs to be a larger refactor - Can re introduce this error after a redesign and consideration of impact ## Testing performed to validate your change - Verified in unit tests and on node
1 parent 1641349 commit f369e78

4 files changed

Lines changed: 27 additions & 28 deletions

File tree

ss/pebbledb/db.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ func (db *Database) Has(storeKey string, version int64, key []byte) (bool, error
318318
}
319319

320320
val, err := db.Get(storeKey, version, key)
321-
if err != nil && !errors.Is(err, errorutils.ErrRecordNotFound) {
321+
if err != nil {
322322
return false, err
323323
}
324324

@@ -327,11 +327,15 @@ func (db *Database) Has(storeKey string, version int64, key []byte) (bool, error
327327

328328
func (db *Database) Get(storeKey string, targetVersion int64, key []byte) ([]byte, error) {
329329
if targetVersion < db.earliestVersion {
330-
return nil, errorutils.ErrRecordNotFound
330+
return nil, nil
331331
}
332332

333333
prefixedVal, err := getMVCCSlice(db.storage, storeKey, key, targetVersion)
334334
if err != nil {
335+
if errors.Is(err, errorutils.ErrRecordNotFound) {
336+
return nil, nil
337+
}
338+
335339
return nil, fmt.Errorf("failed to perform PebbleDB read: %w", err)
336340
}
337341

@@ -358,7 +362,7 @@ func (db *Database) Get(storeKey string, targetVersion int64, key []byte) ([]byt
358362
}
359363

360364
// the value is considered deleted
361-
return nil, errorutils.ErrRecordNotFound
365+
return nil, nil
362366
}
363367

364368
func (db *Database) ApplyChangeset(version int64, cs *proto.NamedChangeSet) error {

ss/rocksdb/db.go

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ package rocksdb
66
import (
77
"bytes"
88
"encoding/binary"
9-
"errors"
109
"fmt"
1110
"sync"
1211
"time"
1312

1413
"github.com/linxGnu/grocksdb"
15-
errorutils "github.com/sei-protocol/sei-db/common/errors"
14+
"github.com/sei-protocol/sei-db/common/errors"
1615
"github.com/sei-protocol/sei-db/common/logger"
1716
"github.com/sei-protocol/sei-db/common/utils"
1817
"github.com/sei-protocol/sei-db/config"
@@ -212,7 +211,7 @@ func (db *Database) Has(storeKey string, version int64, key []byte) (bool, error
212211
}
213212

214213
slice, err := db.getSlice(storeKey, version, key)
215-
if err != nil && !errors.Is(err, errorutils.ErrRecordNotFound) {
214+
if err != nil {
216215
return false, err
217216
}
218217

@@ -221,19 +220,14 @@ func (db *Database) Has(storeKey string, version int64, key []byte) (bool, error
221220

222221
func (db *Database) Get(storeKey string, version int64, key []byte) ([]byte, error) {
223222
if version < db.earliestVersion {
224-
return nil, errorutils.ErrRecordNotFound
223+
return nil, nil
225224
}
226225

227226
slice, err := db.getSlice(storeKey, version, key)
228227
if err != nil {
229228
return nil, fmt.Errorf("failed to get RocksDB slice: %w", err)
230229
}
231230

232-
if !slice.Exists() {
233-
slice.Free()
234-
return nil, errorutils.ErrRecordNotFound
235-
}
236-
237231
return copyAndFreeSlice(slice), nil
238232
}
239233

@@ -330,11 +324,11 @@ func (db *Database) Prune(version int64) error {
330324

331325
func (db *Database) Iterator(storeKey string, version int64, start, end []byte) (types.DBIterator, error) {
332326
if (start != nil && len(start) == 0) || (end != nil && len(end) == 0) {
333-
return nil, errorutils.ErrKeyEmpty
327+
return nil, errors.ErrKeyEmpty
334328
}
335329

336330
if start != nil && end != nil && bytes.Compare(start, end) > 0 {
337-
return nil, errorutils.ErrStartAfterEnd
331+
return nil, errors.ErrStartAfterEnd
338332
}
339333

340334
prefix := storePrefix(storeKey)
@@ -346,11 +340,11 @@ func (db *Database) Iterator(storeKey string, version int64, start, end []byte)
346340

347341
func (db *Database) ReverseIterator(storeKey string, version int64, start, end []byte) (types.DBIterator, error) {
348342
if (start != nil && len(start) == 0) || (end != nil && len(end) == 0) {
349-
return nil, errorutils.ErrKeyEmpty
343+
return nil, errors.ErrKeyEmpty
350344
}
351345

352346
if start != nil && end != nil && bytes.Compare(start, end) > 0 {
353-
return nil, errorutils.ErrStartAfterEnd
347+
return nil, errors.ErrStartAfterEnd
354348
}
355349

356350
prefix := storePrefix(storeKey)

ss/sqlite/db.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ func (db *Database) SetEarliestVersion(version int64, ignoreVersion bool) error
148148

149149
func (db *Database) Has(storeKey string, version int64, key []byte) (bool, error) {
150150
val, err := db.Get(storeKey, version, key)
151-
if err != nil && !errors.Is(err, errorutils.ErrRecordNotFound) {
151+
if err != nil {
152152
return false, err
153153
}
154154

@@ -172,6 +172,10 @@ func (db *Database) Get(storeKey string, targetVersion int64, key []byte) ([]byt
172172
tomb int64
173173
)
174174
if err := stmt.QueryRow(storeKey, key, targetVersion).Scan(&value, &tomb); err != nil {
175+
if errors.Is(err, sql.ErrNoRows) {
176+
return nil, nil
177+
}
178+
175179
return nil, fmt.Errorf("failed to query row: %w", err)
176180
}
177181

ss/test/storage_test_suite.go

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"sync"
66

77
"github.com/cosmos/iavl"
8-
errorutils "github.com/sei-protocol/sei-db/common/errors"
98
"github.com/sei-protocol/sei-db/config"
109
"github.com/sei-protocol/sei-db/ss/types"
1110
"github.com/stretchr/testify/suite"
@@ -142,7 +141,7 @@ func (s *StorageTestSuite) TestDatabaseGetVersionedKey() {
142141
// all queries after version 15 should return nil
143142
for i := int64(15); i <= 17; i++ {
144143
bz, err = db.Get(storeKey1, i, key)
145-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
144+
s.Require().NoError(err)
146145
s.Require().Nil(bz)
147146

148147
ok, err = db.Has(storeKey1, i, key)
@@ -619,11 +618,10 @@ func (s *StorageTestSuite) TestDatabasePrune() {
619618
val := fmt.Sprintf("val%03d-%03d", i, v)
620619

621620
bz, err := db.Get(storeKey1, v, []byte(key))
621+
s.Require().NoError(err)
622622
if v <= 25 {
623-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
624623
s.Require().Nil(bz)
625624
} else {
626-
s.Require().NoError(err)
627625
s.Require().Equal([]byte(val), bz)
628626
}
629627
}
@@ -646,7 +644,7 @@ func (s *StorageTestSuite) TestDatabasePrune() {
646644
key := fmt.Sprintf("key%03d", i)
647645

648646
bz, err := db.Get(storeKey1, v, []byte(key))
649-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
647+
s.Require().NoError(err)
650648
s.Require().Nil(bz)
651649
}
652650
}
@@ -690,7 +688,7 @@ func (s *StorageTestSuite) TestDatabasePruneKeepRecent() {
690688

691689
// ensure queries for versions 50 and older return nil
692690
bz, err := db.Get(storeKey1, 49, key)
693-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
691+
s.Require().Nil(err)
694692
s.Require().Nil(bz)
695693

696694
itr, err := db.Iterator(storeKey1, 49, nil, nil)
@@ -738,11 +736,11 @@ func (s *StorageTestSuite) TestDatabasePruneKeepLastVersion() {
738736

739737
// Verify that all keys before prune height are deleted
740738
bz, err := db.Get(storeKey1, 100, []byte("key000"))
741-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
739+
s.Require().NoError(err)
742740
s.Require().Nil(bz)
743741

744742
bz, err = db.Get(storeKey1, 160, []byte("key001"))
745-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
743+
s.Require().NoError(err)
746744
s.Require().Nil(bz)
747745

748746
// Verify keys after prune height can be retrieved
@@ -932,7 +930,7 @@ func (s *StorageTestSuite) TestParallelWriteAndPruning() {
932930
// check if the data is pruned
933931
version := int64(latestVersion - prunePeriod)
934932
val, err := db.Get(storeKey1, version, []byte(fmt.Sprintf("key-%d-%03d", version-1, 0)))
935-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
933+
s.Require().Nil(err)
936934
s.Require().Nil(val)
937935

938936
version = int64(latestVersion)
@@ -1142,11 +1140,10 @@ func (s *StorageTestSuite) TestParallelIterationAndPruning() {
11421140
val := fmt.Sprintf("val%03d-%03d", i, v)
11431141

11441142
bz, err := db.Get(storeKey1, v, []byte(key))
1143+
s.Require().NoError(err)
11451144
if v <= int64(latestVersion-numHeightsPruned) {
1146-
s.Require().ErrorIs(err, errorutils.ErrRecordNotFound)
11471145
s.Require().Nil(bz)
11481146
} else {
1149-
s.Require().NoError(err)
11501147
s.Require().Equal([]byte(val), bz)
11511148
}
11521149
}

0 commit comments

Comments
 (0)