Commit graph

5465 commits

Author SHA1 Message Date
766d9ec46b [#1693] cli/lens: Replace conditional panics with asserts
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m9s
Pre-commit hooks / Pre-commit (push) Successful in 1m31s
Build / Build Components (push) Successful in 2m19s
Tests and linters / Tests (push) Successful in 3m20s
Tests and linters / gopls check (push) Successful in 3m40s
Tests and linters / Staticcheck (push) Successful in 3m42s
Tests and linters / Run gofumpt (push) Successful in 3m58s
Tests and linters / Lint (push) Successful in 4m26s
Tests and linters / Tests with -race (push) Successful in 5m53s
OCI image / Build container images (push) Successful in 4m4s
Change-Id: Id827da0cd9eef66efd806be6c9bc61044175a971
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-04-08 14:37:06 +03:00
0e1b01b15f [#1693] cli/adm: Replace conditional panics with asserts
Change-Id: I3a46f7ac6d9e4ff51bb490e6fcfc07957418f1a7
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-04-08 14:37:04 +03:00
4c03561aa2 [#1693] internal/assert: Add False and NoError checks
Some checks failed
Tests and linters / gopls check (push) Failing after 59s
Vulncheck / Vulncheck (push) Successful in 1m12s
Pre-commit hooks / Pre-commit (push) Successful in 1m35s
Build / Build Components (push) Successful in 1m49s
Tests and linters / Run gofumpt (push) Successful in 3m29s
Tests and linters / Staticcheck (push) Successful in 3m52s
Tests and linters / Lint (push) Successful in 4m30s
Tests and linters / Tests (push) Successful in 4m31s
OCI image / Build container images (push) Successful in 4m54s
Tests and linters / Tests with -race (push) Successful in 6m51s
Change-Id: Ib3ab1671eeff8e8917673513477f158cadbb4287
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-04-08 14:34:53 +03:00
f4696e8964 [#1689] linter: Fix staticcheck warning: 'Use fmt.Fprintf(...) instead of WriteString(fmt.Sprintf(...))'
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m18s
Pre-commit hooks / Pre-commit (push) Successful in 1m44s
Build / Build Components (push) Successful in 1m49s
Tests and linters / Run gofumpt (push) Successful in 3m20s
Tests and linters / gopls check (push) Successful in 3m44s
Tests and linters / Staticcheck (push) Successful in 3m47s
Tests and linters / Lint (push) Successful in 4m16s
Tests and linters / Tests (push) Successful in 4m17s
OCI image / Build container images (push) Successful in 4m51s
Tests and linters / Tests with -race (push) Successful in 5m39s
Change-Id: I253ab717885cb01b4a2e471147e883ee351be277
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-04-08 09:40:35 +00:00
b0ef737a74 [#1689] linter: Fix testifylint warning: 'len: use require.Len'
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m3s
Pre-commit hooks / Pre-commit (push) Successful in 1m27s
Build / Build Components (push) Successful in 2m6s
Tests and linters / gopls check (push) Successful in 3m32s
Tests and linters / Run gofumpt (push) Successful in 4m2s
Tests and linters / Tests with -race (push) Successful in 4m11s
Tests and linters / Lint (push) Successful in 4m20s
Tests and linters / Tests (push) Successful in 4m44s
Tests and linters / Staticcheck (push) Successful in 4m42s
OCI image / Build container images (push) Successful in 4m54s
Change-Id: I7a08f09c169ac237647dcb20b0737f1c51c441ad
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-04-08 09:32:30 +00:00
6f7b6b65f3 [#1689] linter: Fix staticcheck warning: 'embedded field can be simplified'
Change-Id: I8f454f7d09973cdea096495c3949b88cdd01102e
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-04-08 09:32:24 +00:00
923f0acf8f [#1564] cli: Fix output of object nodes command
All checks were successful
Pre-commit hooks / Pre-commit (push) Successful in 1m26s
Vulncheck / Vulncheck (push) Successful in 1m30s
Build / Build Components (push) Successful in 1m59s
Tests and linters / Run gofumpt (push) Successful in 2m48s
Tests and linters / gopls check (push) Successful in 3m29s
Tests and linters / Tests (push) Successful in 3m51s
Tests and linters / Staticcheck (push) Successful in 4m7s
Tests and linters / Tests with -race (push) Successful in 4m8s
Tests and linters / Lint (push) Successful in 4m32s
OCI image / Build container images (push) Successful in 5m8s
The object nodes command misleadingly reported the number of
"found data objects" as if it matched the actual expected amount,
which could be incorrect for EC objects.

Updated the output wording to explicitly distinguish between
currently available data objects and total objects per the EC
schema.

Change-Id: Ib36b89db58ae66d8978baf5a16b59435db9a068d
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-04-07 18:08:04 +03:00
9b5c1da40f
[#1679] linter: Bump 'golangci-lint' to v1.64.8
All checks were successful
Pre-commit hooks / Pre-commit (push) Successful in 1m36s
Vulncheck / Vulncheck (push) Successful in 1m36s
Build / Build Components (push) Successful in 2m20s
Tests and linters / Run gofumpt (push) Successful in 2m58s
Tests and linters / gopls check (push) Successful in 3m36s
Tests and linters / Tests with -race (push) Successful in 3m55s
Tests and linters / Lint (push) Successful in 4m1s
Tests and linters / Staticcheck (push) Successful in 4m8s
Tests and linters / Tests (push) Successful in 4m27s
OCI image / Build container images (push) Successful in 5m45s
- Removed deprecated config option 'linters.govet.check-shadowing', replaced with enabling the 'shadow' linter.
- Removed usage of deprecated 'tenv' linter, replaced by 'usetesting'.

Change-Id: Ib1bd1ec83b0fd55a47e405b290bc2bc967b9389c
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-04-07 14:21:44 +03:00
b4b053cecd
[#1679] node: Fix 'gocognit' warning
Some checks failed
Vulncheck / Vulncheck (push) Successful in 1m6s
Pre-commit hooks / Pre-commit (push) Successful in 1m45s
Build / Build Components (push) Successful in 2m2s
OCI image / Build container images (push) Has been cancelled
Tests and linters / Lint (push) Has been cancelled
Tests and linters / Tests with -race (push) Has been cancelled
Tests and linters / Tests (push) Has been cancelled
Tests and linters / Staticcheck (push) Has been cancelled
Tests and linters / gopls check (push) Has been cancelled
Tests and linters / Run gofumpt (push) Has been cancelled
Change-Id: I6e2a278af51869c05c306c2910ba85130e39532e
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-04-07 14:10:25 +03:00
0c5d74729c
[#1679] node: Fix 'revive' warning
Some checks failed
Vulncheck / Vulncheck (push) Successful in 1m17s
Build / Build Components (push) Successful in 1m33s
Pre-commit hooks / Pre-commit (push) Has been cancelled
Tests and linters / Lint (push) Has been cancelled
Tests and linters / Tests (push) Has been cancelled
Tests and linters / Tests with -race (push) Has been cancelled
Tests and linters / Staticcheck (push) Has been cancelled
Tests and linters / gopls check (push) Has been cancelled
Tests and linters / Run gofumpt (push) Has been cancelled
OCI image / Build container images (push) Successful in 4m3s
Change-Id: I74ff6332b10f17a329c5d108d01d43002e92aafd
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-04-07 14:07:04 +03:00
c4f941a5f5
[#1689] client/netmap: Remove useless error-handling
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m13s
Pre-commit hooks / Pre-commit (push) Successful in 1m48s
Build / Build Components (push) Successful in 2m19s
Tests and linters / Run gofumpt (push) Successful in 2m22s
Tests and linters / Tests (push) Successful in 3m29s
Tests and linters / Staticcheck (push) Successful in 3m33s
Tests and linters / Lint (push) Successful in 4m17s
Tests and linters / gopls check (push) Successful in 4m26s
OCI image / Build container images (push) Successful in 4m49s
Tests and linters / Tests with -race (push) Successful in 5m17s
No functional changes.

Change-Id: I3a53c992c3ce5e8c6db252abb09aa40626142a97
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-05 09:16:33 +03:00
d933609084
[#1689] client/netmap: Refactor Client.config()
There are problems with that code:
- explicit casts,
- `ErrConfigNotFound` which is not a part of a public API,
- hand-rolled assertions, even though neo-go already has everything we
  need.

So, remove the error, use `stackitem/Item.Try*()` methods for
conversions. Note, that readUint64Config() returns an error if the
parameter is missing. This is likely an error, but this behaviour is
preserved in this PR: `TryInteger()` returns error when applied to
`Null`. By contract, `TryBool()` returns false for `Null`, so this
PR introduces no functional changes.

Refs 82c7a50b8a/pkg/vm/stackitem/item.go (L418)

Change-Id: I445d28a7c6b5abb9a2bb97b57c0cc42d617e16f7
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-05 09:16:32 +03:00
3d771aa21c
[#1689] morph: Remove frostfsError type
It has no custom methods defined, only adds `frostfs error: `
prefix to the error message. The utility of this prefix is debatable,
failed invocations already have `invocation failed` prefix.

Change-Id: If25ebb3679497f3f10acde43b596c81d52351907
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-05 09:16:32 +03:00
52367dc9b2
[#1689] go.mod: Update sdk-go
All checks were successful
Tests and linters / Run gofumpt (push) Successful in 32s
Vulncheck / Vulncheck (push) Successful in 1m25s
Pre-commit hooks / Pre-commit (push) Successful in 2m8s
Build / Build Components (push) Successful in 2m11s
Tests and linters / Staticcheck (push) Successful in 2m49s
Tests and linters / Tests (push) Successful in 3m37s
Tests and linters / Lint (push) Successful in 3m43s
Tests and linters / Tests with -race (push) Successful in 4m23s
Tests and linters / gopls check (push) Successful in 4m46s
OCI image / Build container images (push) Successful in 5m27s
Change-Id: I72052fe11e66e4c77f4aef6cb2c0f038aa7b0d1f
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-04 20:40:15 +03:00
979d4bb2ae [#1701] tree: Form $Tree:ID resource property for APE
All checks were successful
Tests and linters / Run gofumpt (push) Successful in 1m6s
Vulncheck / Vulncheck (push) Successful in 1m9s
Pre-commit hooks / Pre-commit (push) Successful in 1m55s
Build / Build Components (push) Successful in 3m0s
Tests and linters / Staticcheck (push) Successful in 3m36s
Tests and linters / Tests (push) Successful in 4m13s
Tests and linters / Tests with -race (push) Successful in 4m22s
Tests and linters / gopls check (push) Successful in 4m33s
Tests and linters / Lint (push) Successful in 4m44s
OCI image / Build container images (push) Successful in 5m46s
* Make `verifyClient`, `checkAPE` receive `treeID` from request body;
* Make `newAPERequest` set `$Tree:ID` property
* Add unit-test to check if a rule for `$Tree:ID` works

Close #1701

Change-Id: I834fed366e8adfd4b5c07bf50aac09af6239991b
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2025-04-04 17:48:00 +03:00
fbc623f34e [#1701] go.mod: Bump policy-engine version
Change-Id: I7aa359bf235034d6459275d366a276d9930fa227
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2025-04-04 17:48:00 +03:00
5350632e01 [#1705] engine/test: Increase evacuation timeout
All checks were successful
Vulncheck / Vulncheck (push) Successful in 2m27s
Pre-commit hooks / Pre-commit (push) Successful in 2m49s
Build / Build Components (push) Successful in 3m0s
OCI image / Build container images (push) Successful in 4m52s
Tests and linters / Run gofumpt (push) Successful in 4m56s
Tests and linters / gopls check (push) Successful in 5m38s
Tests and linters / Staticcheck (push) Successful in 5m54s
Tests and linters / Lint (push) Successful in 6m38s
Tests and linters / Tests (push) Successful in 6m44s
Tests and linters / Tests with -race (push) Successful in 10m1s
This test was flaky in CI probably because of runner load fluctuations.
Let's increase the timeout and see if the flakiness goes away.

(close #1705)

Change-Id: I76f96e3d6f4adb3d5de0e27b8ee6b47685236277
Signed-off-by: Vitaliy Potyarkin <v.potyarkin@yadro.com>
2025-04-04 14:41:56 +00:00
2938498b52
[#1689] adm: Fix NNS root availability check
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m4s
Pre-commit hooks / Pre-commit (push) Successful in 1m27s
Build / Build Components (push) Successful in 2m32s
Tests and linters / gopls check (push) Successful in 4m16s
OCI image / Build container images (push) Successful in 4m51s
Tests and linters / Tests with -race (push) Successful in 6m27s
Tests and linters / Run gofumpt (push) Successful in 6m38s
Tests and linters / Lint (push) Successful in 6m51s
Tests and linters / Staticcheck (push) Successful in 6m52s
Tests and linters / Tests (push) Successful in 7m8s
After TrueCloudLab/frostfs-contract#117
we allow checking for root domain availability directly.
Before this commit, NNSRootRegistered() has always returned true, so the
actual root registration happened as a side-effect of the following
code, because NNS registers all parent domains, if they are missing.

Change-Id: Icf98f130e77d31b4af7b69697989183c1c8f6a56
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-04 15:33:52 +03:00
272128e61f
Revert "[#652] adm: Group independent stages in batches"
All checks were successful
Pre-commit hooks / Pre-commit (push) Successful in 1m36s
Build / Build Components (push) Successful in 2m20s
Vulncheck / Vulncheck (push) Successful in 2m21s
Tests and linters / gopls check (push) Successful in 4m21s
Tests and linters / Tests with -race (push) Successful in 4m44s
OCI image / Build container images (push) Successful in 5m42s
Tests and linters / Run gofumpt (push) Successful in 5m58s
Tests and linters / Lint (push) Successful in 6m23s
Tests and linters / Staticcheck (push) Successful in 6m58s
Tests and linters / Tests (push) Successful in 7m0s
This reverts commit d00c606fee.

There are internal dependencies inside the last stage: first, we
register NNS root, only then register add records.
Revert for now, will revert back after more testing.

Change-Id: I760632b5628caf04849d4a64c714cf286051f357
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-04 14:11:43 +03:00
50dccff7c1 [#1633] morph/netmap: Merge node info in netmap with candidates list
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m12s
Pre-commit hooks / Pre-commit (push) Successful in 1m41s
Build / Build Components (push) Successful in 1m54s
Tests and linters / Run gofumpt (push) Successful in 3m35s
Tests and linters / Lint (push) Successful in 4m5s
Tests and linters / Staticcheck (push) Successful in 4m9s
Tests and linters / gopls check (push) Successful in 4m29s
Tests and linters / Tests (push) Successful in 4m52s
OCI image / Build container images (push) Successful in 5m9s
Tests and linters / Tests with -race (push) Successful in 6m14s
Applicable for both cases: when node uses local cache for netmap and when it disabled.

Change-Id: I3050f537e20312a4b39e944aca763b77bd1e74c4
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2025-04-03 16:29:54 +03:00
634de97509
[#1704] metabase: Do not ignore errors by Delete
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m12s
Pre-commit hooks / Pre-commit (push) Successful in 1m43s
Build / Build Components (push) Successful in 1m54s
Tests and linters / Run gofumpt (push) Successful in 3m31s
Tests and linters / Tests (push) Successful in 3m37s
Tests and linters / Lint (push) Successful in 3m44s
Tests and linters / Staticcheck (push) Successful in 3m49s
OCI image / Build container images (push) Successful in 4m39s
Tests and linters / gopls check (push) Successful in 4m32s
Tests and linters / Tests with -race (push) Successful in 7m16s
Change-Id: Ie7b89071a007f53f55879ff9e7e0c25d24ad5dbf
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-04-03 10:09:05 +03:00
2a6cdbdb72 [#1689] cli: Add split-header option for object patch command
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m18s
Pre-commit hooks / Pre-commit (push) Successful in 1m38s
Build / Build Components (push) Successful in 1m40s
Tests and linters / Run gofumpt (push) Successful in 3m34s
Tests and linters / Lint (push) Successful in 3m46s
Tests and linters / Staticcheck (push) Successful in 3m56s
Tests and linters / Tests (push) Successful in 4m8s
Tests and linters / gopls check (push) Successful in 4m25s
OCI image / Build container images (push) Successful in 4m51s
Tests and linters / Tests with -race (push) Successful in 8m10s
* Make `split-header` option read binary- or JSON-encoded split-header;
* Use `PatchHeader` instead of `PatchAttributes`.

Change-Id: I50ae1bd93d4695657249dacbea981199a39e1a35
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2025-04-02 13:34:46 +00:00
11493d587b
[#579] config: Change config example to be compatible with YAML 1.2 standard
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m0s
Pre-commit hooks / Pre-commit (push) Successful in 1m28s
Build / Build Components (push) Successful in 2m30s
Tests and linters / gopls check (push) Successful in 4m21s
Tests and linters / Tests with -race (push) Successful in 4m23s
Tests and linters / Run gofumpt (push) Successful in 5m5s
OCI image / Build container images (push) Successful in 5m18s
Tests and linters / Lint (push) Successful in 5m31s
Tests and linters / Staticcheck (push) Successful in 5m46s
Tests and linters / Tests (push) Successful in 6m2s
In accordance with the YAML 1.2 specification, octal numbers must begin with the 0o prefix.

Change-Id: Icb2e83a4aa75c1eb91decd0b7c9b146aaa9fb3e2
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-04-02 11:21:34 +03:00
b924ecb850 [#1689] object: Make patch streamer use ApplyHeaderPatch
All checks were successful
Pre-commit hooks / Pre-commit (push) Successful in 1m56s
Build / Build Components (push) Successful in 2m3s
Tests and linters / Run gofumpt (push) Successful in 3m26s
Tests and linters / Lint (push) Successful in 3m52s
Tests and linters / Tests (push) Successful in 3m51s
Tests and linters / Staticcheck (push) Successful in 4m2s
OCI image / Build container images (push) Successful in 4m55s
Tests and linters / Tests with -race (push) Successful in 5m45s
Tests and linters / gopls check (push) Successful in 6m29s
Vulncheck / Vulncheck (push) Successful in 46s
Change-Id: I4fb94936621544f70ef4e08815c42efaa5ba846f
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2025-04-02 07:12:40 +00:00
e142d25fac
[#1700] gc: Wait for handlers on GC stopping
All checks were successful
Pre-commit hooks / Pre-commit (push) Successful in 1m8s
Vulncheck / Vulncheck (push) Successful in 1m4s
Build / Build Components (push) Successful in 2m1s
Tests and linters / Run gofumpt (push) Successful in 3m21s
Tests and linters / gopls check (push) Successful in 3m29s
Tests and linters / Lint (push) Successful in 3m43s
Tests and linters / Staticcheck (push) Successful in 3m52s
Tests and linters / Tests (push) Successful in 4m12s
Tests and linters / Tests with -race (push) Successful in 4m19s
OCI image / Build container images (push) Successful in 4m57s
First wait for goroutine handles epoch events to not to get data race
on `gc.newEpochHandlers.cancelFunc`.

Then cancel handlers and wait for them.

Change-Id: I71f11f8526961f8356f582a95b10eb8340c0aedd
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-04-01 16:00:41 +03:00
bd1c18e117
[#1689] cli/tree: Copy dial options from the service code
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m3s
Pre-commit hooks / Pre-commit (push) Successful in 1m29s
Build / Build Components (push) Successful in 2m2s
Tests and linters / Run gofumpt (push) Successful in 3m19s
Tests and linters / Lint (push) Successful in 3m32s
Tests and linters / gopls check (push) Successful in 3m29s
Tests and linters / Staticcheck (push) Successful in 3m50s
Tests and linters / Tests (push) Successful in 4m3s
Tests and linters / Tests with -race (push) Successful in 4m15s
OCI image / Build container images (push) Successful in 4m43s
There should be no `grpcs://` prefix in address and credentials should
be picked.

Change-Id: I58cdc98b079eac2c7db7dc088f4f131794a91b9f
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-01 14:40:33 +03:00
b27f7d1d17
[#1689] treesvc: Use context dialer in synchronizeTree()
This dialer supports source-based routing and is already used in cache.

Change-Id: Ic7852edd2faea4e5d8667221e6f681cc82bb143a
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-01 14:40:33 +03:00
3cd8080232
[#1689] treesvc: Fix dial options for TLS connections
There are two problems with the current approach:
1. For TLS connections we need different transport credentials.
2. grpc.NewClient() considers scheme from `URIAddr()` as a scheme for a
   resolver. `grpcs://` scheme doesn't exist, though, so the default one
   is picked. The default resolver (`dns://`) is in turn unable to parse the
   5edab9e554/internal/resolver/dns/dns_resolver.go (L405)
   The error  is `grpcs://192.168.198.248:8081:443: too many colons in address`.

Both problems don't exist in the SDK code, take it from there.

Change-Id: Ia1212050f539162a560796685efdc3f9cfbf80a0
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-01 14:40:33 +03:00
a11b54ca15
[#1689] treesvc: Unify gRPC client creation for cache and sync
They connect to the same endpoints, the only difference is that
connection for synchronization is limited in lifetime and is closed
after the sync is finished. This is probably not intentional, as
synchronization was implemented before cache was introduced.
However, reusing dialTreeService() in sync.go has possible perfomance
implications, so is avoided for now.

Change-Id: I2e37befd783b4d873ff833969f932deded1195be
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-01 14:40:33 +03:00
b112a92408
[#1689] treesvc: Create request after client is initialized
Make it easier to follow.

Change-Id: I40c4db77f015bb45cb25f16ce24e68188fc14380
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-01 14:40:33 +03:00
19ca907223
[#1689] treesvc: Untie createConnection() from Service struct
Change-Id: I6212de4b81afe8c2516981a7bb2fea099c7df773
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-04-01 14:40:33 +03:00
f62d81e26a
[#1700] gc: Take mode mutex in locks handlers
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m15s
Pre-commit hooks / Pre-commit (push) Successful in 2m11s
Build / Build Components (push) Successful in 2m28s
Tests and linters / Lint (push) Successful in 3m21s
Tests and linters / Staticcheck (push) Successful in 3m38s
Tests and linters / Run gofumpt (push) Successful in 4m1s
OCI image / Build container images (push) Successful in 4m48s
Tests and linters / gopls check (push) Successful in 4m39s
Tests and linters / Tests (push) Successful in 5m5s
Tests and linters / Tests with -race (push) Successful in 6m32s
Change-Id: I4408eae3aed936f85427b6246dcf727bd6813a0d
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-04-01 14:23:03 +03:00
27899598dc
[#1700] gc: Drop Event interface
There is only one event: new epoch.

Change-Id: I982f3650f7bc753ff2782393625452f0f8cdcc35
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-04-01 14:23:02 +03:00
bc6cc9ae2a
[#1700] engine: Print stacks on test request limiter
Some checks failed
Vulncheck / Vulncheck (push) Successful in 1m0s
Pre-commit hooks / Pre-commit (push) Successful in 1m24s
Build / Build Components (push) Successful in 2m4s
OCI image / Build container images (push) Has been cancelled
Tests and linters / Run gofumpt (push) Successful in 3m37s
Tests and linters / Tests with -race (push) Successful in 4m9s
Tests and linters / gopls check (push) Successful in 4m15s
Tests and linters / Tests (push) Successful in 4m46s
Tests and linters / Staticcheck (push) Successful in 4m49s
Tests and linters / Lint (push) Successful in 5m30s
Change-Id: I4952769ca431d1049955823b41b99b0984b385fc
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-04-01 14:23:02 +03:00
6e1576cfdb [#1656] qos: Add tests for AdjustOutgoingIOTag Interceptors
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m1s
Pre-commit hooks / Pre-commit (push) Successful in 1m24s
Build / Build Components (push) Successful in 2m32s
Tests and linters / Tests with -race (push) Successful in 3m34s
Tests and linters / gopls check (push) Successful in 3m35s
Tests and linters / Run gofumpt (push) Successful in 4m4s
Tests and linters / Lint (push) Successful in 4m15s
Tests and linters / Staticcheck (push) Successful in 4m26s
Tests and linters / Tests (push) Successful in 5m41s
OCI image / Build container images (push) Successful in 6m1s
Change-Id: If534e756b26cf7f202039d48ecdf554b4283728b
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-04-01 11:55:15 +03:00
a5bae6c5af
[#1699] qos: Allow to prohibit operations for IO tag
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m18s
Pre-commit hooks / Pre-commit (push) Successful in 1m47s
Build / Build Components (push) Successful in 2m24s
Tests and linters / Run gofumpt (push) Successful in 2m29s
Tests and linters / Staticcheck (push) Successful in 3m42s
Tests and linters / Tests (push) Successful in 4m10s
Tests and linters / gopls check (push) Successful in 4m19s
Tests and linters / Lint (push) Successful in 4m56s
Tests and linters / Tests with -race (push) Successful in 5m5s
OCI image / Build container images (push) Successful in 3m57s
Change-Id: I2bee26885244e241d224860978b6de3526527e96
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-04-01 10:08:03 +03:00
5a13830a94
[#1699] mod: Bump frostfs-qos version
All checks were successful
Tests and linters / Run gofumpt (push) Successful in 29s
Vulncheck / Vulncheck (push) Successful in 1m25s
Pre-commit hooks / Pre-commit (push) Successful in 1m57s
Build / Build Components (push) Successful in 2m14s
Tests and linters / Staticcheck (push) Successful in 2m46s
Tests and linters / Tests (push) Successful in 3m9s
Tests and linters / Lint (push) Successful in 3m41s
Tests and linters / Tests with -race (push) Successful in 4m16s
Tests and linters / gopls check (push) Successful in 4m30s
OCI image / Build container images (push) Successful in 4m51s
Change-Id: Ie5e708c0ca653596c6e3346aa286618868a5aee8
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-04-01 10:08:03 +03:00
dcb2b23a7d [#1656] qos: Add test for SetCriticalIOTag Interceptor
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m21s
Tests and linters / Run gofumpt (push) Successful in 1m52s
Build / Build Components (push) Successful in 2m26s
Pre-commit hooks / Pre-commit (push) Successful in 2m27s
Tests and linters / Tests (push) Successful in 2m58s
Tests and linters / Staticcheck (push) Successful in 2m59s
Tests and linters / Lint (push) Successful in 3m42s
Tests and linters / Tests with -race (push) Successful in 4m36s
Tests and linters / gopls check (push) Successful in 4m43s
OCI image / Build container images (push) Successful in 5m33s
Change-Id: I4a55fcb84e6f65408a1c0120ac917e49e23354a1
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-03-31 18:21:48 +03:00
115aae7c34 [#1656] qos: Add tests for MaxActiveRPCLimiter Interceptors
Some checks failed
Build / Build Components (push) Has been cancelled
OCI image / Build container images (push) Has been cancelled
Pre-commit hooks / Pre-commit (push) Has been cancelled
Tests and linters / Lint (push) Has been cancelled
Tests and linters / Tests (push) Has been cancelled
Tests and linters / Tests with -race (push) Has been cancelled
Tests and linters / Staticcheck (push) Has been cancelled
Tests and linters / Run gofumpt (push) Has been cancelled
Tests and linters / gopls check (push) Has been cancelled
Vulncheck / Vulncheck (push) Has been cancelled
Change-Id: Ib65890ae5aec34c34e15d4ec1f05952f74f1ad26
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-03-31 18:21:46 +03:00
12a0537a7a [#1689] ci: Add commit checker to Jenkinsfile
All checks were successful
Vulncheck / Vulncheck (push) Successful in 1m6s
Pre-commit hooks / Pre-commit (push) Successful in 1m33s
Build / Build Components (push) Successful in 1m53s
Tests and linters / Tests with -race (push) Successful in 2m23s
Tests and linters / Run gofumpt (push) Successful in 2m37s
Tests and linters / Lint (push) Successful in 2m49s
Tests and linters / Staticcheck (push) Successful in 3m1s
Tests and linters / Tests (push) Successful in 3m10s
Tests and linters / gopls check (push) Successful in 3m34s
OCI image / Build container images (push) Successful in 5m33s
- Commit checker image is built from dco-go:
  TrueCloudLab/dco-go#14
- 'pull_request_target' branch is defined in Jenkins job:
  TrueCloudLab/jenkins#10
  TrueCloudLab/jenkins#11

Change-Id: Ib86c5749f9e084d736b868240c4b47014b02ba8d
Signed-off-by: Vitaliy Potyarkin <v.potyarkin@yadro.com>
2025-03-31 15:08:59 +00:00
30d4692c3e [#1640] go.mod: Bump version for frostfs-locode-db
All checks were successful
Tests and linters / Run gofumpt (push) Successful in 39s
Vulncheck / Vulncheck (push) Successful in 1m12s
Pre-commit hooks / Pre-commit (push) Successful in 2m0s
Build / Build Components (push) Successful in 2m40s
Tests and linters / Staticcheck (push) Successful in 3m6s
Tests and linters / Tests (push) Successful in 3m8s
Tests and linters / Tests with -race (push) Successful in 3m55s
Tests and linters / Lint (push) Successful in 4m1s
Tests and linters / gopls check (push) Successful in 4m15s
OCI image / Build container images (push) Successful in 5m8s
Change-Id: Ic45ae77d6209c0097575fc8f89b076b22d50d149
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2025-03-31 10:29:41 +00:00
2254c8aff5 [#1689] go.mod: Bump SDK version
All checks were successful
Tests and linters / Run gofumpt (push) Successful in 31s
Vulncheck / Vulncheck (push) Successful in 1m15s
Build / Build Components (push) Successful in 2m9s
Pre-commit hooks / Pre-commit (push) Successful in 2m16s
Tests and linters / Staticcheck (push) Successful in 3m5s
Tests and linters / Tests (push) Successful in 3m10s
Tests and linters / Lint (push) Successful in 3m45s
Tests and linters / gopls check (push) Successful in 4m32s
Tests and linters / Tests with -race (push) Successful in 4m34s
OCI image / Build container images (push) Successful in 4m46s
Change-Id: Ic946aa68c3d6da9e7d54363f8e9141c6547707d6
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2025-03-31 11:55:29 +03:00
d432bebef4 [#1689] go.mod: Bump frostfs-qos version
All checks were successful
Tests and linters / Run gofumpt (push) Successful in 34s
Vulncheck / Vulncheck (push) Successful in 1m4s
Pre-commit hooks / Pre-commit (push) Successful in 1m53s
Build / Build Components (push) Successful in 2m7s
Tests and linters / Tests (push) Successful in 2m39s
Tests and linters / Staticcheck (push) Successful in 3m14s
Tests and linters / Lint (push) Successful in 3m58s
Tests and linters / gopls check (push) Successful in 4m20s
Tests and linters / Tests with -race (push) Successful in 4m29s
OCI image / Build container images (push) Successful in 4m35s
Change-Id: Iaa28da1a1e7b2f4ab7fd8ed661939eb38f4c7782
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-03-28 12:40:05 +00:00
d144abc977 [#1692] metabase: Remove useless count variable
All checks were successful
Pre-commit hooks / Pre-commit (push) Successful in 1m22s
Vulncheck / Vulncheck (push) Successful in 1m17s
Build / Build Components (push) Successful in 2m12s
Tests and linters / Run gofumpt (push) Successful in 3m15s
Tests and linters / Lint (push) Successful in 3m41s
Tests and linters / Staticcheck (push) Successful in 3m46s
Tests and linters / Tests (push) Successful in 4m10s
Tests and linters / gopls check (push) Successful in 4m23s
OCI image / Build container images (push) Successful in 5m14s
Tests and linters / Tests with -race (push) Successful in 5m15s
It is always equal to `len(to)`.

Change-Id: Id7a4c26e9711216b78f96e6b2511efa0773e3471
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-03-28 12:16:01 +00:00
a2053870e2 [#1692] metabase: Use bucket cache in ListWithCursor()
No changes in speed, but unified approach:
```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/metabase
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
                           │    master    │                 new                 │
                           │    sec/op    │    sec/op     vs base               │
ListWithCursor/1_item-8      6.067µ ±  8%   5.731µ ± 10%       ~ (p=0.052 n=10)
ListWithCursor/10_items-8    25.40µ ± 11%   26.12µ ± 13%       ~ (p=0.971 n=10)
ListWithCursor/100_items-8   210.7µ ±  9%   203.2µ ±  6%       ~ (p=0.280 n=10)
geomean                      31.90µ         31.22µ        -2.16%

                           │    master    │                  new                  │
                           │     B/op     │     B/op      vs base                 │
ListWithCursor/1_item-8      3.287Ki ± 0%   3.287Ki ± 0%       ~ (p=1.000 n=10) ¹
ListWithCursor/10_items-8    15.63Ki ± 0%   15.62Ki ± 0%       ~ (p=0.328 n=10)
ListWithCursor/100_items-8   138.1Ki ± 0%   138.1Ki ± 0%       ~ (p=0.340 n=10)
geomean                      19.21Ki        19.21Ki       -0.00%
¹ all samples are equal

                           │   master    │                 new                  │
                           │  allocs/op  │  allocs/op   vs base                 │
ListWithCursor/1_item-8       109.0 ± 0%    109.0 ± 0%       ~ (p=1.000 n=10) ¹
ListWithCursor/10_items-8     380.0 ± 0%    380.0 ± 0%       ~ (p=1.000 n=10) ¹
ListWithCursor/100_items-8   3.082k ± 0%   3.082k ± 0%       ~ (p=1.000 n=10) ¹
geomean                       503.5         503.5       +0.00%
¹ all samples are equal
```

Change-Id: Ic11673427615053656b2a60068a6d4dbd27af2cb
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-03-28 12:16:01 +00:00
d00c606fee [#652] adm: Group independent stages in batches
Some checks failed
Vulncheck / Vulncheck (push) Successful in 1m3s
Build / Build Components (push) Has been cancelled
Pre-commit hooks / Pre-commit (push) Successful in 1m25s
OCI image / Build container images (push) Has been cancelled
Tests and linters / Lint (push) Has been cancelled
Tests and linters / Tests (push) Has been cancelled
Tests and linters / Tests with -race (push) Has been cancelled
Tests and linters / Staticcheck (push) Has been cancelled
Tests and linters / gopls check (push) Has been cancelled
Tests and linters / Run gofumpt (push) Has been cancelled
Each stage waits until transaction persists. This is needed to ensure
the next stage will see the result of the previous one. However, some of
the stages do not depend one on another, so we may execute them in
parallel.

`AwaitDisabled` flag is used to localize this batching on the code
level. We could've removed `AwaitTx()` from respective stages, but it
seems more error prone.

Close #652.

Change-Id: Ib9c6f6cd5e0db0f31aa1cda8e127b1fad5166336
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-03-28 12:15:21 +00:00
60446bb668 [#1689] adm/helper: Use proper nns bindings import
The one in `neo-go` is for another contract.

Change-Id: Ia1ac2da5e419b48801afdb26df72892d77344e0d
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-03-28 12:15:21 +00:00
bd8ab2d84a [#1689] adm: Remove useless switch in NNSIsAvailable()
After all the refactorings, there is no need to have custom behaviour
for local client.

Change-Id: I99e297cdeffff979524b3f89d3580ab5780e7681
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-03-28 12:15:21 +00:00
bce2f7bef0 [#1689] adm: Reuse neo.NewReader helper in transferNEOFinished()
Some checks failed
Vulncheck / Vulncheck (push) Successful in 1m0s
Pre-commit hooks / Pre-commit (push) Successful in 1m29s
Build / Build Components (push) Successful in 2m10s
Tests and linters / gopls check (push) Successful in 3m33s
Tests and linters / Run gofumpt (push) Successful in 3m36s
Tests and linters / Lint (push) Successful in 3m53s
Tests and linters / Tests with -race (push) Successful in 4m0s
Tests and linters / Tests (push) Successful in 4m19s
Tests and linters / Staticcheck (push) Successful in 4m20s
OCI image / Build container images (push) Has been cancelled
Change-Id: I27980ed87436958cb4d27278e30e05da021d1506
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-03-28 12:10:37 +00:00
c2c05e2228 [#1689] adm: Reuse ReadOnlyInvoker in registerCandidateRange()
Change-Id: I544d10340825494b45a62700fa247404c18f746a
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-03-28 12:10:37 +00:00