From 09938a98411142872f9c0981c9d21a6a49ebb058 Mon Sep 17 00:00:00 2001 From: Pavel Karpy Date: Thu, 20 Apr 2023 19:17:08 +0300 Subject: [PATCH] Revert "[#262] meta: Do not return old expired objects" This reverts commit 3d23b087 Signed-off-by: Pavel Karpy --- CHANGELOG.md | 1 - pkg/local_object_storage/metabase/db_test.go | 7 ------ pkg/local_object_storage/metabase/get.go | 13 +--------- pkg/local_object_storage/metabase/util.go | 25 -------------------- 4 files changed, 1 insertion(+), 45 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 954bad8449..8a9bcfd41b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,6 @@ Changelog for FrostFS Node ### Fixed - Take network settings into account during netmap contract update (#100) - Read config files from dir even if config file not provided via `--config` for node (#238) -- Expired by more than 1 epoch objects could be returned (#262) - Notary requests parsing according to `neo-go`'s updates (#268) ### Removed diff --git a/pkg/local_object_storage/metabase/db_test.go b/pkg/local_object_storage/metabase/db_test.go index a3b26da79b..9ef7bf8bc5 100644 --- a/pkg/local_object_storage/metabase/db_test.go +++ b/pkg/local_object_storage/metabase/db_test.go @@ -73,13 +73,6 @@ func checkExpiredObjects(t *testing.T, db *meta.DB, f func(exp, nonExp *objectSD require.NoError(t, metaPut(db, nonExpObj, nil)) f(expObj, nonExpObj) - - oldExpObj := testutil.GenerateObject() - setExpiration(oldExpObj, 1) - - require.NoError(t, metaPut(db, oldExpObj, nil)) - - f(oldExpObj, nonExpObj) } func setExpiration(o *objectSDK.Object, epoch uint64) { diff --git a/pkg/local_object_storage/metabase/get.go b/pkg/local_object_storage/metabase/get.go index c3a5880bf0..fff32d6adf 100644 --- a/pkg/local_object_storage/metabase/get.go +++ b/pkg/local_object_storage/metabase/get.go @@ -66,24 +66,13 @@ func (db *DB) Get(ctx context.Context, prm GetPrm) (res GetRes, err error) { } currEpoch := db.epochState.CurrentEpoch() - var obj *objectSDK.Object err = db.boltDB.View(func(tx *bbolt.Tx) error { key := make([]byte, addressKeySize) - obj, err = db.get(tx, prm.addr, key, true, prm.raw, currEpoch) + res.hdr, err = db.get(tx, prm.addr, key, true, prm.raw, currEpoch) return err }) - if err != nil { - return - } - - err = validate(obj, currEpoch) - if err != nil { - return - } - - res.hdr = obj return } diff --git a/pkg/local_object_storage/metabase/util.go b/pkg/local_object_storage/metabase/util.go index d4c93c7500..b60c97fd7f 100644 --- a/pkg/local_object_storage/metabase/util.go +++ b/pkg/local_object_storage/metabase/util.go @@ -4,9 +4,7 @@ import ( "bytes" "crypto/sha256" "fmt" - "strconv" - objectV2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object" cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" @@ -261,26 +259,3 @@ func isLockObject(tx *bbolt.Tx, idCnr cid.ID, obj oid.ID) bool { bucketNameLockers(idCnr, make([]byte, bucketKeySize)), objectKey(obj, make([]byte, objectKeySize))) } - -// performs object validity checks. -func validate(obj *object.Object, currEpoch uint64) error { - for _, a := range obj.Attributes() { - if key := a.Key(); key != objectV2.SysAttributeExpEpoch && key != objectV2.SysAttributeExpEpochNeoFS { - continue - } - - expEpoch, err := strconv.ParseUint(a.Value(), 10, 64) - if err != nil { - // unexpected for already stored and valudated objects - return fmt.Errorf("expiration epoch parsing: %w", err) - } - - if expEpoch < currEpoch { - return ErrObjectIsExpired - } - - break - } - - return nil -}