From 07091baaaddb3ed9ecbf940b38ad088af9118bed Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 10 Apr 2024 14:15:42 +0300 Subject: [PATCH 1/7] Reapply "[#972] go.mod: Bump go version to go1.21" This reverts commit 9adcb253be772bfc4f716307c564ac1f0545f85c. Signed-off-by: Evgenii Stratonikov --- .docker/Dockerfile.adm | 2 +- .docker/Dockerfile.ci | 2 +- .docker/Dockerfile.cli | 2 +- .docker/Dockerfile.ir | 2 +- .docker/Dockerfile.storage | 2 +- .forgejo/workflows/build.yml | 2 +- .forgejo/workflows/dco.yml | 2 +- .forgejo/workflows/tests.yml | 6 +++--- .forgejo/workflows/vulncheck.yml | 2 +- Makefile | 2 +- README.md | 2 +- go.mod | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.docker/Dockerfile.adm b/.docker/Dockerfile.adm index eeccaab79..b3dad06d3 100644 --- a/.docker/Dockerfile.adm +++ b/.docker/Dockerfile.adm @@ -1,4 +1,4 @@ -FROM golang:1.21 as builder +FROM golang:1.22 as builder ARG BUILD=now ARG VERSION=dev ARG REPO=repository diff --git a/.docker/Dockerfile.ci b/.docker/Dockerfile.ci index ef6586a64..e9077c831 100644 --- a/.docker/Dockerfile.ci +++ b/.docker/Dockerfile.ci @@ -1,4 +1,4 @@ -FROM golang:1.21 +FROM golang:1.22 WORKDIR /tmp diff --git a/.docker/Dockerfile.cli b/.docker/Dockerfile.cli index 0dd4cebcf..5adedc140 100644 --- a/.docker/Dockerfile.cli +++ b/.docker/Dockerfile.cli @@ -1,4 +1,4 @@ -FROM golang:1.21 as builder +FROM golang:1.22 as builder ARG BUILD=now ARG VERSION=dev ARG REPO=repository diff --git a/.docker/Dockerfile.ir b/.docker/Dockerfile.ir index 4015df673..25025bb2f 100644 --- a/.docker/Dockerfile.ir +++ b/.docker/Dockerfile.ir @@ -1,4 +1,4 @@ -FROM golang:1.21 as builder +FROM golang:1.22 as builder ARG BUILD=now ARG VERSION=dev ARG REPO=repository diff --git a/.docker/Dockerfile.storage b/.docker/Dockerfile.storage index ced6ea538..a16005516 100644 --- a/.docker/Dockerfile.storage +++ b/.docker/Dockerfile.storage @@ -1,4 +1,4 @@ -FROM golang:1.21 as builder +FROM golang:1.22 as builder ARG BUILD=now ARG VERSION=dev ARG REPO=repository diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 3c74d9434..86943fe88 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go_versions: [ '1.20', '1.21' ] + go_versions: [ '1.21', '1.22' ] steps: - uses: actions/checkout@v3 diff --git a/.forgejo/workflows/dco.yml b/.forgejo/workflows/dco.yml index 9aa0d3106..7c5af8410 100644 --- a/.forgejo/workflows/dco.yml +++ b/.forgejo/workflows/dco.yml @@ -13,7 +13,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v3 with: - go-version: '1.21' + go-version: '1.22' - name: Run commit format checker uses: https://git.frostfs.info/TrueCloudLab/dco-go@v3 diff --git a/.forgejo/workflows/tests.yml b/.forgejo/workflows/tests.yml index 449af3f51..b0c9adbf2 100644 --- a/.forgejo/workflows/tests.yml +++ b/.forgejo/workflows/tests.yml @@ -11,7 +11,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v3 with: - go-version: '1.21' + go-version: '1.22' cache: true - name: Install linters @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go_versions: [ '1.20', '1.21' ] + go_versions: [ '1.21', '1.22' ] fail-fast: false steps: - uses: actions/checkout@v3 @@ -63,7 +63,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v3 with: - go-version: '1.21' + go-version: '1.22' cache: true - name: Install staticcheck diff --git a/.forgejo/workflows/vulncheck.yml b/.forgejo/workflows/vulncheck.yml index 8ea01749b..3af564c4b 100644 --- a/.forgejo/workflows/vulncheck.yml +++ b/.forgejo/workflows/vulncheck.yml @@ -13,7 +13,7 @@ jobs: - name: Setup Go uses: actions/setup-go@v3 with: - go-version: '1.21' + go-version: '1.22' - name: Install govulncheck run: go install golang.org/x/vuln/cmd/govulncheck@latest diff --git a/Makefile b/Makefile index fbf93facd..710c12703 100755 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ VERSION ?= $(shell git describe --tags --dirty --match "v*" --always --abbrev=8 HUB_IMAGE ?= truecloudlab/frostfs HUB_TAG ?= "$(shell echo ${VERSION} | sed 's/^v//')" -GO_VERSION ?= 1.21 +GO_VERSION ?= 1.22 LINT_VERSION ?= 1.56.1 TRUECLOUDLAB_LINT_VERSION ?= 0.0.5 PROTOC_VERSION ?= 25.0 diff --git a/README.md b/README.md index ecd162a85..413010372 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ The latest version of frostfs-node works with frostfs-contract # Building -To make all binaries you need Go 1.20+ and `make`: +To make all binaries you need Go 1.21+ and `make`: ``` make all ``` diff --git a/go.mod b/go.mod index f940b306a..b99799337 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module git.frostfs.info/TrueCloudLab/frostfs-node -go 1.20 +go 1.21 require ( code.gitea.io/sdk/gitea v0.17.1 -- 2.45.2 From 5d0f52943e951cb13fae0e4703766f3d5e8535d0 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 10 Apr 2024 14:15:48 +0300 Subject: [PATCH 2/7] Reapply "[#972] pilorama: Remove removeDuplicatesInPlace()" This reverts commit 9f68305c2e88b1aea294ac3e75b75038151534e1. Signed-off-by: Evgenii Stratonikov --- pkg/local_object_storage/pilorama/batch.go | 15 +--- .../pilorama/batch_test.go | 70 ------------------- 2 files changed, 2 insertions(+), 83 deletions(-) delete mode 100644 pkg/local_object_storage/pilorama/batch_test.go diff --git a/pkg/local_object_storage/pilorama/batch.go b/pkg/local_object_storage/pilorama/batch.go index c65488b74..520c6dfb4 100644 --- a/pkg/local_object_storage/pilorama/batch.go +++ b/pkg/local_object_storage/pilorama/batch.go @@ -2,6 +2,7 @@ package pilorama import ( "encoding/binary" + "slices" "sort" "sync" "time" @@ -50,7 +51,7 @@ func (b *batch) run() { sort.Slice(b.operations, func(i, j int) bool { return b.operations[i].Time < b.operations[j].Time }) - b.operations = removeDuplicatesInPlace(b.operations) + b.operations = slices.CompactFunc(b.operations, func(x, y *Move) bool { return x.Time == y.Time }) // Our main use-case is addition of new items. In this case, // we do not need to perform undo()/redo(), just do(). @@ -115,15 +116,3 @@ func (b *batch) run() { b.results[i] <- err } } - -func removeDuplicatesInPlace(a []*Move) []*Move { - equalCount := 0 - for i := 1; i < len(a); i++ { - if a[i].Time == a[i-1].Time { - equalCount++ - } else { - a[i-equalCount] = a[i] - } - } - return a[:len(a)-equalCount] -} diff --git a/pkg/local_object_storage/pilorama/batch_test.go b/pkg/local_object_storage/pilorama/batch_test.go deleted file mode 100644 index 931fce18c..000000000 --- a/pkg/local_object_storage/pilorama/batch_test.go +++ /dev/null @@ -1,70 +0,0 @@ -package pilorama - -import ( - "testing" - - "github.com/stretchr/testify/require" -) - -func Test_removeDuplicatesInPlace(t *testing.T) { - testCases := []struct { - before []int - after []int - }{ - { - before: []int{}, - after: []int{}, - }, - { - before: []int{1}, - after: []int{1}, - }, - { - before: []int{1, 2}, - after: []int{1, 2}, - }, - { - before: []int{1, 2, 3}, - after: []int{1, 2, 3}, - }, - { - before: []int{1, 1, 2}, - after: []int{1, 2}, - }, - { - before: []int{1, 2, 2}, - after: []int{1, 2}, - }, - { - before: []int{1, 2, 2, 3}, - after: []int{1, 2, 3}, - }, - { - before: []int{1, 1, 1}, - after: []int{1}, - }, - { - before: []int{1, 1, 2, 2}, - after: []int{1, 2}, - }, - { - before: []int{1, 1, 1, 2, 3, 3, 3}, - after: []int{1, 2, 3}, - }, - } - - for _, tc := range testCases { - ops := make([]*Move, len(tc.before)) - for i := range ops { - ops[i] = &Move{Meta: Meta{Time: Timestamp(tc.before[i])}} - } - - expected := make([]*Move, len(tc.after)) - for i := range expected { - expected[i] = &Move{Meta: Meta{Time: Timestamp(tc.after[i])}} - } - - actual := removeDuplicatesInPlace(ops) - require.Equal(t, expected, actual, "%d", tc.before) - } -} -- 2.45.2 From a7f7e4397d83d2f8af04f1ec0c614c81ad674a9b Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 10 Apr 2024 14:16:18 +0300 Subject: [PATCH 3/7] Reapply "[#972] Use min/max builtins" This reverts commit dad56d2e98179904a9b263103ad04794202a7c1f. Signed-off-by: Evgenii Stratonikov --- .../modules/morph/initialize/initialize_register.go | 5 +---- pkg/innerring/processors/netmap/cleanup_table.go | 5 +---- pkg/local_object_storage/blobovnicza/iterate.go | 8 -------- pkg/local_object_storage/engine/list.go | 5 +---- pkg/local_object_storage/shard/gc.go | 12 ++---------- pkg/morph/client/notary.go | 6 +----- pkg/services/object/internal/client/client.go | 5 +---- pkg/services/object/transport_splitter.go | 5 +---- pkg/services/policer/policer_test.go | 5 +---- pkg/services/tree/sync.go | 8 ++------ 10 files changed, 11 insertions(+), 53 deletions(-) diff --git a/cmd/frostfs-adm/internal/modules/morph/initialize/initialize_register.go b/cmd/frostfs-adm/internal/modules/morph/initialize/initialize_register.go index 6a0a88016..4c6607f9a 100644 --- a/cmd/frostfs-adm/internal/modules/morph/initialize/initialize_register.go +++ b/cmd/frostfs-adm/internal/modules/morph/initialize/initialize_register.go @@ -100,10 +100,7 @@ func registerCandidates(c *helper.InitializeContext) error { // Register candidates in batches in order to overcome the signers amount limit. // See: https://github.com/nspcc-dev/neo-go/blob/master/pkg/core/transaction/transaction.go#L27 for i := 0; i < need; i += registerBatchSize { - start, end := i, i+registerBatchSize - if end > need { - end = need - } + start, end := i, min(i+registerBatchSize, need) // This check is sound because transactions are accepted/rejected atomically. if have >= end { continue diff --git a/pkg/innerring/processors/netmap/cleanup_table.go b/pkg/innerring/processors/netmap/cleanup_table.go index 705e21d99..c18611569 100644 --- a/pkg/innerring/processors/netmap/cleanup_table.go +++ b/pkg/innerring/processors/netmap/cleanup_table.go @@ -82,10 +82,7 @@ func (c *cleanupTable) touch(keyString string, now uint64, binNodeInfo []byte) b result := !ok || access.removeFlag || !bytes.Equal(access.binNodeInfo, binNodeInfo) access.removeFlag = false // reset remove flag on each touch - if now > access.epoch { - access.epoch = now - } - + access.epoch = max(access.epoch, now) access.binNodeInfo = binNodeInfo // update binary node info c.lastAccess[keyString] = access diff --git a/pkg/local_object_storage/blobovnicza/iterate.go b/pkg/local_object_storage/blobovnicza/iterate.go index 32b0ccea7..e87da751d 100644 --- a/pkg/local_object_storage/blobovnicza/iterate.go +++ b/pkg/local_object_storage/blobovnicza/iterate.go @@ -56,14 +56,6 @@ func (b *Blobovnicza) iterateBounds(useObjLimitBound bool, f func(uint64, uint64 return nil } -func max(a, b uint64) uint64 { - if a > b { - return a - } - - return b -} - // IterationElement represents a unit of elements through which Iterate operation passes. type IterationElement struct { addr oid.Address diff --git a/pkg/local_object_storage/engine/list.go b/pkg/local_object_storage/engine/list.go index f9229a2b1..7245caeeb 100644 --- a/pkg/local_object_storage/engine/list.go +++ b/pkg/local_object_storage/engine/list.go @@ -134,10 +134,7 @@ func (e *StorageEngine) ListWithCursor(ctx context.Context, prm ListWithCursorPr continue } - count := prm.count - uint32(len(result)) - if count > batchSize { - count = batchSize - } + count := min(prm.count-uint32(len(result)), batchSize) var shardPrm shard.ListWithCursorPrm shardPrm.WithCount(count) diff --git a/pkg/local_object_storage/shard/gc.go b/pkg/local_object_storage/shard/gc.go index 83be3259a..ef8e97d34 100644 --- a/pkg/local_object_storage/shard/gc.go +++ b/pkg/local_object_storage/shard/gc.go @@ -343,16 +343,8 @@ func (s *Shard) removeGarbage(pctx context.Context) (result gcRunResult) { } func (s *Shard) getExpiredObjectsParameters() (workerCount, batchSize int) { - workerCount = minExpiredWorkers - batchSize = minExpiredBatchSize - - if s.gc.gcCfg.expiredCollectorBatchSize > batchSize { - batchSize = s.gc.gcCfg.expiredCollectorBatchSize - } - - if s.gc.gcCfg.expiredCollectorWorkerCount > workerCount { - workerCount = s.gc.gcCfg.expiredCollectorWorkerCount - } + workerCount = max(minExpiredWorkers, s.gc.gcCfg.expiredCollectorWorkerCount) + batchSize = max(minExpiredBatchSize, s.gc.gcCfg.expiredCollectorBatchSize) return } diff --git a/pkg/morph/client/notary.go b/pkg/morph/client/notary.go index 1665fec1d..4865b43ef 100644 --- a/pkg/morph/client/notary.go +++ b/pkg/morph/client/notary.go @@ -162,11 +162,7 @@ func (c *Client) DepositNotary(amount fixedn.Fixed8, delta uint32) (res util.Uin return util.Uint256{}, fmt.Errorf("can't get previous expiration value: %w", err) } - till := int64(bc + delta) - if till < currentTill { - till = currentTill - } - + till := max(int64(bc+delta), currentTill) return c.depositNotary(amount, till) } diff --git a/pkg/services/object/internal/client/client.go b/pkg/services/object/internal/client/client.go index 4634c96e1..2c405070d 100644 --- a/pkg/services/object/internal/client/client.go +++ b/pkg/services/object/internal/client/client.go @@ -343,10 +343,7 @@ func PayloadRange(ctx context.Context, prm PayloadRangePrm) (*PayloadRangeRes, e return nil, new(apistatus.ObjectOutOfRange) } - ln := prm.ln - if ln > maxInitialBufferSize { - ln = maxInitialBufferSize - } + ln := min(prm.ln, maxInitialBufferSize) w := bytes.NewBuffer(make([]byte, 0, ln)) _, err = io.CopyN(w, rdr, int64(prm.ln)) diff --git a/pkg/services/object/transport_splitter.go b/pkg/services/object/transport_splitter.go index 2d9810cd3..54e49cb12 100644 --- a/pkg/services/object/transport_splitter.go +++ b/pkg/services/object/transport_splitter.go @@ -164,10 +164,7 @@ func (s *searchStreamMsgSizeCtrl) Send(resp *object.SearchResponse) error { newResp.SetBody(body) } - cut := s.addrAmount - if cut > ln { - cut = ln - } + cut := min(s.addrAmount, ln) body.SetIDList(ids[:cut]) newResp.SetMetaHeader(resp.GetMetaHeader()) diff --git a/pkg/services/policer/policer_test.go b/pkg/services/policer/policer_test.go index 50f206fd9..be0974c39 100644 --- a/pkg/services/policer/policer_test.go +++ b/pkg/services/policer/policer_test.go @@ -388,10 +388,7 @@ func (it *sliceKeySpaceIterator) Next(_ context.Context, size uint32) ([]objectc if it.cur >= len(it.objs) { return nil, engine.ErrEndOfListing } - end := it.cur + int(size) - if end > len(it.objs) { - end = len(it.objs) - } + end := min(it.cur+int(size), len(it.objs)) ret := it.objs[it.cur:end] it.cur = end return ret, nil diff --git a/pkg/services/tree/sync.go b/pkg/services/tree/sync.go index 064ee5900..0f85f50b1 100644 --- a/pkg/services/tree/sync.go +++ b/pkg/services/tree/sync.go @@ -167,9 +167,7 @@ func mergeOperationStreams(streams []chan *pilorama.Move, merged chan<- *piloram merged <- ms[minTimeMoveIndex] height := ms[minTimeMoveIndex].Time if ms[minTimeMoveIndex] = <-streams[minTimeMoveIndex]; ms[minTimeMoveIndex] == nil { - if minStreamedLastHeight > height { - minStreamedLastHeight = height - } + minStreamedLastHeight = min(minStreamedLastHeight, height) } } @@ -203,9 +201,7 @@ func (s *Service) applyOperationStream(ctx context.Context, cid cid.ID, treeID s errGroup.Go(func() error { if err := s.forest.TreeApply(ctx, cid, treeID, m, true); err != nil { heightMtx.Lock() - if m.Time < unappliedOperationHeight { - unappliedOperationHeight = m.Time - } + unappliedOperationHeight = min(unappliedOperationHeight, m.Time) heightMtx.Unlock() return err } -- 2.45.2 From 107277995765785e6645c983ddc3ece5ee5d36de Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 10 Apr 2024 14:15:56 +0300 Subject: [PATCH 4/7] Reapply "[#972] Adopt slices.BinarySearch()" This reverts commit 4bfc6d29b910bc8e85852180ca0caabbf2eff2f4. Signed-off-by: Evgenii Stratonikov --- .../internal/modules/morph/container/container.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cmd/frostfs-adm/internal/modules/morph/container/container.go b/cmd/frostfs-adm/internal/modules/morph/container/container.go index 690db2f4f..eda388d37 100644 --- a/cmd/frostfs-adm/internal/modules/morph/container/container.go +++ b/cmd/frostfs-adm/internal/modules/morph/container/container.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "os" + "slices" "sort" "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-adm/internal/modules/morph/constants" @@ -446,7 +447,7 @@ func getCIDFilterFunc(cmd *cobra.Command) (func([]byte) bool, error) { var id cid.ID id.SetSHA256(v) idStr := id.EncodeToString() - n := sort.Search(len(rawIDs), func(i int) bool { return rawIDs[i] >= idStr }) - return n < len(rawIDs) && rawIDs[n] == idStr + _, found := slices.BinarySearch(rawIDs, idStr) + return found }, nil } -- 2.45.2 From 345e19e0b8caf93ccccd2e4b0e4eee2e822f5d62 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 10 Apr 2024 14:15:57 +0300 Subject: [PATCH 5/7] Reapply "[#972] Use require.ElementsMatch() where possible" This reverts commit 7627d08914ab4cfa6fd73f17e586f4b0f1a0bbc1. Signed-off-by: Evgenii Stratonikov --- pkg/local_object_storage/engine/list_test.go | 12 +----------- .../metabase/containers_test.go | 12 +----------- pkg/local_object_storage/metabase/list_test.go | 14 +------------- 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/pkg/local_object_storage/engine/list_test.go b/pkg/local_object_storage/engine/list_test.go index 7bb1ac0fa..4fc9569c7 100644 --- a/pkg/local_object_storage/engine/list_test.go +++ b/pkg/local_object_storage/engine/list_test.go @@ -3,7 +3,6 @@ package engine import ( "context" "path/filepath" - "sort" "testing" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/object" @@ -18,13 +17,6 @@ import ( "github.com/stretchr/testify/require" ) -func sortAddresses(addrWithType []object.AddressWithType) []object.AddressWithType { - sort.Slice(addrWithType, func(i, j int) bool { - return addrWithType[i].Address.EncodeToString() < addrWithType[j].Address.EncodeToString() - }) - return addrWithType -} - func TestListWithCursor(t *testing.T) { t.Parallel() @@ -98,7 +90,6 @@ func TestListWithCursor(t *testing.T) { require.NoError(t, err) expected = append(expected, object.AddressWithType{Type: objectSDK.TypeRegular, Address: object.AddressOf(obj)}) } - expected = sortAddresses(expected) var prm ListWithCursorPrm prm.count = tt.batchSize @@ -113,8 +104,7 @@ func TestListWithCursor(t *testing.T) { prm.cursor = res.Cursor() } - got = sortAddresses(got) - require.Equal(t, expected, got) + require.ElementsMatch(t, expected, got) }) } } diff --git a/pkg/local_object_storage/metabase/containers_test.go b/pkg/local_object_storage/metabase/containers_test.go index a90cd9d97..5d6788d7e 100644 --- a/pkg/local_object_storage/metabase/containers_test.go +++ b/pkg/local_object_storage/metabase/containers_test.go @@ -3,7 +3,6 @@ package meta_test import ( "context" "math/rand" - "sort" "testing" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/object" @@ -108,18 +107,9 @@ func TestDB_ContainersCount(t *testing.T) { } } - sort.Slice(expected, func(i, j int) bool { - return expected[i].EncodeToString() < expected[j].EncodeToString() - }) - got, err := db.Containers(context.Background()) require.NoError(t, err) - - sort.Slice(got, func(i, j int) bool { - return got[i].EncodeToString() < got[j].EncodeToString() - }) - - require.Equal(t, expected, got) + require.ElementsMatch(t, expected, got) } func TestDB_ContainerSize(t *testing.T) { diff --git a/pkg/local_object_storage/metabase/list_test.go b/pkg/local_object_storage/metabase/list_test.go index 25c0e35bd..e1ccb4e06 100644 --- a/pkg/local_object_storage/metabase/list_test.go +++ b/pkg/local_object_storage/metabase/list_test.go @@ -3,7 +3,6 @@ package meta_test import ( "context" "errors" - "sort" "testing" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/object" @@ -128,8 +127,6 @@ func TestLisObjectsWithCursor(t *testing.T) { expected = append(expected, object.AddressWithType{Address: object.AddressOf(child), Type: objectSDK.TypeRegular}) } - expected = sortAddresses(expected) - t.Run("success with various count", func(t *testing.T) { for countPerReq := 1; countPerReq <= total; countPerReq++ { got := make([]object.AddressWithType, 0, total) @@ -151,9 +148,7 @@ func TestLisObjectsWithCursor(t *testing.T) { _, _, err = metaListWithCursor(db, uint32(countPerReq), cursor) require.ErrorIs(t, err, meta.ErrEndOfListing, "count:%d", countPerReq, cursor) - - got = sortAddresses(got) - require.Equal(t, expected, got, "count:%d", countPerReq) + require.ElementsMatch(t, expected, got, "count:%d", countPerReq) } }) @@ -216,13 +211,6 @@ func TestAddObjectDuringListingWithCursor(t *testing.T) { } } -func sortAddresses(addrWithType []object.AddressWithType) []object.AddressWithType { - sort.Slice(addrWithType, func(i, j int) bool { - return addrWithType[i].Address.EncodeToString() < addrWithType[j].Address.EncodeToString() - }) - return addrWithType -} - func metaListWithCursor(db *meta.DB, count uint32, cursor *meta.Cursor) ([]object.AddressWithType, *meta.Cursor, error) { var listPrm meta.ListPrm listPrm.SetCount(count) -- 2.45.2 From 07da46dfa4069513a3348c2ac3e1308bf243e0a6 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 10 Apr 2024 14:15:59 +0300 Subject: [PATCH 6/7] Reapply "[#972] Use slices.Sort* when useful" This reverts commit 3359349acbbfb0aa8e208c5286ff7bd6537df2be. Signed-off-by: Evgenii Stratonikov --- cmd/frostfs-cli/modules/control/shards_set_mode.go | 7 ++----- pkg/services/tree/getsubtree_test.go | 6 ++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/cmd/frostfs-cli/modules/control/shards_set_mode.go b/cmd/frostfs-cli/modules/control/shards_set_mode.go index 1c87b405b..e73f15178 100644 --- a/cmd/frostfs-cli/modules/control/shards_set_mode.go +++ b/cmd/frostfs-cli/modules/control/shards_set_mode.go @@ -3,7 +3,7 @@ package control import ( "bytes" "fmt" - "sort" + "slices" "strings" rawclient "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/client" @@ -177,9 +177,6 @@ func getShardIDListFromIDFlag(cmd *cobra.Command, withAllFlag bool) [][]byte { res = append(res, raw) } - sort.Slice(res, func(i, j int) bool { - return bytes.Compare(res[i], res[j]) < 0 - }) - + slices.SortFunc(res, bytes.Compare) return res } diff --git a/pkg/services/tree/getsubtree_test.go b/pkg/services/tree/getsubtree_test.go index 9a4223e30..305c2bac9 100644 --- a/pkg/services/tree/getsubtree_test.go +++ b/pkg/services/tree/getsubtree_test.go @@ -5,7 +5,7 @@ import ( "errors" "path" "path/filepath" - "sort" + "slices" "testing" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/pilorama" @@ -192,9 +192,7 @@ func testGetSubTreeOrderAsc(t *testing.T, p pilorama.ForestStorage) { require.True(t, found, "unknown node %d %v", i, acc.seen[i].GetBody().GetNodeId()) } - require.True(t, sort.SliceIsSorted(paths, func(i, j int) bool { - return paths[i] < paths[j] - })) + require.True(t, slices.IsSorted(paths)) }) t.Run("depth=1", func(t *testing.T) { acc := subTreeAcc{errIndex: -1} -- 2.45.2 From 6bc07c991c73362aa499c17dbc5bb6980dd42198 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 10 Apr 2024 14:16:00 +0300 Subject: [PATCH 7/7] Reapply "[#972] Drop x/exp/slices dependency" This reverts commit 946f2ec2bf4b5e99726811ac8bcb225bbca0708f. Signed-off-by: Evgenii Stratonikov --- go.sum | Bin 42147 -> 43413 bytes pkg/innerring/processors/frostfs/handlers.go | 2 +- .../internal/testutil/generators_test.go | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/go.sum b/go.sum index 7f7e8439863316f1147df6c6c1c65773ea1569d6..66273b1744c79ee39c08d23bf4d757e55eaae932 100644 GIT binary patch delta 977 zcmY+COK;<36oxgGxXe%(X(R}RN)#9t$Wjwu;?EwjAh8`gZk#5uKRbPeh8-i=uttalW#|5Y^PJ~>&-wcMy^CM=u70hd zhqZfj-H(r>*g2Zw4~SUm)3`U)65lR(Qd14iKjCK*juq7DjMsHhVvNuiC!$~eScA9F z53e6o=c#0EdR{>k3}$G?ID%ZJL)sj`FJd}(pHDvS)?0AZeQ%qrzLFkb| z#|udw?#Anmg(b}`xh2#oCKpA{p!4SYrP92$hrXomGB{aj1E_4>%^N}JxA_qzuE*MV z%$Q`}73D;U^PtV-LmOJ=Sn|;$@D7@Qe^4LnGdNp;7?{os!nLL;r};_Va%Bm0v&>dm zN+mdY?w!xd^yP3q6Eb`4Rl{4fJpPa+Sfw5>G{D&dPE>HR?t$^nfHz26Jb_2$|g) z4J9|&;bYnoN+#i6`0)SlyuJ-i-8jxvv!eFulqN8D8_L!Kt_4C7Ww;f<&E`?p{q*Se1038y6{{(&7mnU&G}Do8s6lZ~{$R znK13eDp{d#E{@7qKfl;RA6&j$O@)o}3