[#56] node: Allow reading expired locked object

Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
This commit is contained in:
Pavel Karpy 2023-01-30 13:23:44 +03:00 committed by fyrchik
parent 3beef10f89
commit 337049b2ce
3 changed files with 27 additions and 0 deletions

View file

@ -169,6 +169,27 @@ func TestDB_Lock(t *testing.T) {
})
}
func TestDB_Lock_Expired(t *testing.T) {
es := &epochState{e: 123}
db := newDB(t, meta.WithEpochState(es))
// put an object
addr := putWithExpiration(t, db, object.TypeRegular, 124)
// expire the obj
es.e = 125
_, err := metaGet(db, addr, false)
require.ErrorIs(t, err, meta.ErrObjectIsExpired)
// lock the obj
require.NoError(t, db.Lock(addr.Container(), oidtest.ID(), []oid.ID{addr.Object()}))
// object is expired but locked, thus, must be available
_, err = metaGet(db, addr, false)
require.NoError(t, err)
}
func TestDB_IsLocked(t *testing.T) {
db := newDB(t)