Skip to content

Commit

Permalink
Release/v0.43.0 (#2920)
Browse files Browse the repository at this point in the history
  • Loading branch information
roman-khimov authored Aug 20, 2024
2 parents d668214 + 80fe6f9 commit 1a9784c
Show file tree
Hide file tree
Showing 13 changed files with 52 additions and 41 deletions.
25 changes: 18 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,20 @@ Changelog for NeoFS Node

## [Unreleased]

### Added

### Fixed

### Changed

### Removed

### Updated

### Updating from v0.43.0

## [0.43.0] - 2024-08-20 - Jukdo

### Added
- Indexes inspection command to neofs-lens (#2882)
- Add objects sanity checker to neofs-lens (#2506)
Expand All @@ -15,23 +29,19 @@ Changelog for NeoFS Node
- Control service's Drop call does not clean metabase (#2822)
- It was impossible to specify memory amount as "1b" (one byte) in config, default was used instead (#2899)
- Container session token's lifetime was not checked (#2898)
- ACL checks for split objects could be forced by a node than might lack access (#2909)
- ACL checks for split objects could be forced by a node than might lack access (#2909)

### Changed
- neofs-cli allows several objects deletion at a time (#2774)
- `ObjectService.Put` server of in-container node places objects using new `ObjectService.Replicate` RPC (#2802)
- `ObjectService`'s `Put` and `Replicate` RPC handlers cache up to 1000 lists of container nodes (#2892)
- `ObjectService`'s `Search` and `Replicate` RPC handlers cache up to 1000 lists of container nodes (#2892)
- Default max_traceable_blocks Morph setting lowered to 17280 from 2102400 (#2897)
- `ObjectService`'s `Get`/`Head`/`GetRange` RPC handlers cache up to 10K lists of per-object sorted container nodes (#2896)

### Removed

### Updated
- neofs-contract dependency to 0.20.0 (#2872)
- NeoGo dependency to 0.106.3 (#2872)

### Updating from v0.42.1

## [0.42.1] - 2024-06-13

A tiny update that adds compatibility with the Neo N3 Domovoi hardfork.
Expand Down Expand Up @@ -2059,7 +2069,8 @@ NeoFS-API v2.0 support and updated brand-new storage node application.

First public review release.

[Unreleased]: https://github.com/nspcc-dev/neofs-node/compare/v0.42.1...master
[Unreleased]: https://github.com/nspcc-dev/neofs-node/compare/v0.43.0...master
[0.43.0]: https://github.com/nspcc-dev/neofs-node/compare/v0.42.1...v0.43.0
[0.42.1]: https://github.com/nspcc-dev/neofs-node/compare/v0.42.0...v0.42.1
[0.42.0]: https://github.com/nspcc-dev/neofs-node/compare/v0.41.1...v0.42.0
[0.41.1]: https://github.com/nspcc-dev/neofs-node/compare/v0.41.0...v0.41.1
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.42.1
0.43.0
10 changes: 5 additions & 5 deletions pkg/innerring/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -305,17 +305,17 @@ func parseConfigUint64Condition(v *viper.Viper, key, desc string, cond func(uint
return res, nil
}

func parseConfigUint64Range(v *viper.Viper, key, desc string, min, max uint64) (uint64, error) {
func parseConfigUint64Range(v *viper.Viper, key, desc string, minV, maxV uint64) (uint64, error) {
return parseConfigUint64Condition(v, key, desc, func(val uint64) error {
if val < min || val > max {
return fmt.Errorf("out of allowable range [%d:%d]", min, max)
if val < minV || val > maxV {
return fmt.Errorf("out of allowable range [%d:%d]", minV, maxV)
}
return nil
})
}

func parseConfigUint64Max(v *viper.Viper, key, desc string, max uint64) (uint64, error) {
return parseConfigUint64Range(v, key, desc, 0, max)
func parseConfigUint64Max(v *viper.Viper, key, desc string, maxV uint64) (uint64, error) {
return parseConfigUint64Range(v, key, desc, 0, maxV)
}

func parseConfigDurationCondition(v *viper.Viper, key, desc string, cond func(time.Duration) error) (time.Duration, error) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,21 @@ type objectDesc struct {
storageID []byte
}

func TestAll(t *testing.T, cons Constructor, min, max uint64) {
func TestAll(t *testing.T, cons Constructor, minSize, maxSize uint64) {
t.Run("get", func(t *testing.T) {
TestGet(t, cons, min, max)
TestGet(t, cons, minSize, maxSize)
})
t.Run("get range", func(t *testing.T) {
TestGetRange(t, cons, min, max)
TestGetRange(t, cons, minSize, maxSize)
})
t.Run("delete", func(t *testing.T) {
TestDelete(t, cons, min, max)
TestDelete(t, cons, minSize, maxSize)
})
t.Run("exists", func(t *testing.T) {
TestExists(t, cons, min, max)
TestExists(t, cons, minSize, maxSize)
})
t.Run("iterate", func(t *testing.T) {
TestIterate(t, cons, min, max)
TestIterate(t, cons, minSize, maxSize)
})
}

Expand All @@ -49,11 +49,11 @@ func TestInfo(t *testing.T, cons Constructor, expectedType string, expectedPath
require.Equal(t, expectedPath, s.Path())
}

func prepare(t *testing.T, count int, s common.Storage, min, max uint64) []objectDesc {
func prepare(t *testing.T, count int, s common.Storage, minSize, maxSize uint64) []objectDesc {
objects := make([]objectDesc, count)

for i := range objects {
objects[i].obj = NewObject(min + uint64(rand.Intn(int(max-min+1)))) // not too large
objects[i].obj = NewObject(minSize + uint64(rand.Intn(int(maxSize-minSize+1)))) // not too large
objects[i].addr = objectCore.AddressOf(objects[i].obj)
objects[i].raw = objects[i].obj.Marshal()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ import (

// TestControl checks correctness of a read-only mode.
// cons must return a storage which is NOT opened.
func TestControl(t *testing.T, cons Constructor, min, max uint64) {
func TestControl(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t)
require.NoError(t, s.Open(false))
require.NoError(t, s.Init())

objects := prepare(t, 10, s, min, max)
objects := prepare(t, 10, s, minSize, maxSize)
require.NoError(t, s.Close())

require.NoError(t, s.Open(true))
Expand All @@ -32,7 +32,7 @@ func TestControl(t *testing.T, cons Constructor, min, max uint64) {

t.Run("put fails", func(t *testing.T) {
var prm common.PutPrm
prm.Object = NewObject(min + uint64(rand.Intn(int(max-min+1))))
prm.Object = NewObject(minSize + uint64(rand.Intn(int(maxSize-minSize+1))))
prm.Address = objectCore.AddressOf(prm.Object)

_, err := s.Put(prm)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ import (
"github.com/stretchr/testify/require"
)

func TestDelete(t *testing.T, cons Constructor, min, max uint64) {
func TestDelete(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t)
require.NoError(t, s.Open(false))
require.NoError(t, s.Init())
t.Cleanup(func() { require.NoError(t, s.Close()) })

objects := prepare(t, 4, s, min, max)
objects := prepare(t, 4, s, minSize, maxSize)

t.Run("delete non-existent", func(t *testing.T) {
var prm common.DeletePrm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ import (
"github.com/stretchr/testify/require"
)

func TestExists(t *testing.T, cons Constructor, min, max uint64) {
func TestExists(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t)
require.NoError(t, s.Open(false))
require.NoError(t, s.Init())
t.Cleanup(func() { require.NoError(t, s.Close()) })

objects := prepare(t, 1, s, min, max)
objects := prepare(t, 1, s, minSize, maxSize)

t.Run("missing object", func(t *testing.T) {
prm := common.ExistsPrm{Address: oidtest.Address()}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ import (
"github.com/stretchr/testify/require"
)

func TestGet(t *testing.T, cons Constructor, min, max uint64) {
func TestGet(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t)
require.NoError(t, s.Open(false))
require.NoError(t, s.Init())
t.Cleanup(func() { require.NoError(t, s.Close()) })

objects := prepare(t, 2, s, min, max)
objects := prepare(t, 2, s, minSize, maxSize)

t.Run("missing object", func(t *testing.T) {
gPrm := common.GetPrm{Address: oidtest.Address()}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ import (
"github.com/stretchr/testify/require"
)

func TestGetRange(t *testing.T, cons Constructor, min, max uint64) {
func TestGetRange(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t)
require.NoError(t, s.Open(false))
require.NoError(t, s.Init())
t.Cleanup(func() { require.NoError(t, s.Close()) })

objects := prepare(t, 1, s, min, max)
objects := prepare(t, 1, s, minSize, maxSize)

t.Run("missing object", func(t *testing.T) {
gPrm := common.GetRangePrm{Address: oidtest.Address()}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ import (
"github.com/stretchr/testify/require"
)

func TestIterate(t *testing.T, cons Constructor, min, max uint64) {
func TestIterate(t *testing.T, cons Constructor, minSize, maxSize uint64) {
s := cons(t)
require.NoError(t, s.Open(false))
require.NoError(t, s.Init())
t.Cleanup(func() { require.NoError(t, s.Close()) })

objects := prepare(t, 10, s, min, max)
objects := prepare(t, 10, s, minSize, maxSize)

// Delete random object to ensure it is not iterated over.
const delID = 2
Expand Down
4 changes: 2 additions & 2 deletions pkg/local_object_storage/engine/evacuate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,10 @@ func TestEvacuateShard(t *testing.T) {
func TestEvacuateNetwork(t *testing.T) {
var errReplication = errors.New("handler error")

acceptOneOf := func(objects []*objectSDK.Object, max int) func(oid.Address, *objectSDK.Object) error {
acceptOneOf := func(objects []*objectSDK.Object, maxIter int) func(oid.Address, *objectSDK.Object) error {
var n int
return func(addr oid.Address, obj *objectSDK.Object) error {
if n == max {
if n == maxIter {
return errReplication
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/morph/client/notary.go
Original file line number Diff line number Diff line change
Expand Up @@ -637,8 +637,8 @@ func (c *Client) notaryTxValidationLimit() (uint32, error) {
return 0, fmt.Errorf("can't get current blockchain height: %w", err)
}

min := bc + c.notary.txValidTime
rounded := (min/c.notary.roundTime + 1) * c.notary.roundTime
minIndex := bc + c.notary.txValidTime
rounded := (minIndex/c.notary.roundTime + 1) * c.notary.roundTime

return rounded, nil
}
Expand Down
6 changes: 3 additions & 3 deletions pkg/services/audit/auditor/pdp.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,11 @@ func (c *Context) splitPayload(id oid.ID) []uint64 {

for i := uint64(0); i < hashRangeNumber; i++ {
if i < hashRangeNumber-1 {
max := size - prev - (hashRangeNumber - i)
if max == 0 {
maxL := size - prev - (hashRangeNumber - i)
if maxL == 0 {
prev++
} else {
prev += rand.Uint64()%max + 1
prev += rand.Uint64()%maxL + 1
}
} else {
prev = size
Expand Down

0 comments on commit 1a9784c

Please sign in to comment.