ee4c32ad6e
[ #1607 ] adm/ape: Extend kind flag to accept integer
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-06 17:51:57 +03:00
beba79ed7d
[ #1607 ] adm/ape: Adopt policy reader
...
Embed https://git.frostfs.info/dkirillov/policy-reader
tool to 'frostfs-adm morph ape' command
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-06 17:51:57 +03:00
01a308b683
[ #1607 ] adm/ape: Update target-type description
...
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2025-02-06 17:51:57 +03:00
9b113c3156
[ #1613 ] morph: Add tracing for morph queries to neo-go
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-02-05 16:38:20 +03:00
4de5fca547
[ #1624 ] blobovniczatree: Return source error from Init()
...
As it was before: when the database was opened, an error returned,
but along with the original error, the `context cancelled`` error returned,
because `iterateIncompletedRebuildDBPaths` method has `ctx.Done()` check
and egCtx passed to `iterateIncompletedRebuildDBPaths` method.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-02-03 17:36:21 +03:00
9c4c5a5262
[ #1602 ] go.mod: Update sdk-go
...
Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
2025-02-03 14:28:23 +03:00
6fcae9f75a
[ #1621 ] treesvc: Cancel background sync on failure
...
If applyOperationStream() exits prematurely, other goroutines will block
on send and errgroup will never finish waiting. In this commit we also
check whether context is cancelled.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-02-03 09:37:55 +00:00
1df64c5cab
[ #1621 ] treesvc: Move variable initialization to top in mergeOperationStreams()
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-02-03 09:37:55 +00:00
6a580db55e
[ #1626 ] go.mod: Bump frostfs-sdk-go
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-01-30 16:23:00 +03:00
24054cf6f4
[ #1618 ] pkg: Refactor user.ID.ScriptHash()
usage
...
`user.ID.ScriptHash()` does not return an error anymore.
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-01-30 13:18:37 +00:00
9ee3dd4e91
[ #1618 ] ape: Fix object service request tests
...
Constant string `testOwnerID` for these tests has an invalid
format. It has 11 bytes instead of required 25 for `user.ID`.
It worked because:
1. `user.ID` was a byte slice and didn't check length
and format of byte slices decoded from strings.
2. in these tests `testOwnerID` was used only to decode
container owner id and to compare it with owner id encoded
back to string.
Since `user.ID implementation has changed`, the problem arised.
Now `testOwnerID` is valid.
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-01-30 13:18:37 +00:00
78bfd12229
[ #1622 ] adm: Return non zero return code if metabase upgrade failed
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-01-30 15:31:25 +03:00
57dc0a8e9e
[ #1616 ] getsvc: Move break condition from body to the loop condition
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-30 06:50:37 +00:00
b309b34bfc
[ #1616 ] getsvc: Simplify buildChainRange()
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-30 06:50:37 +00:00
c8acdf40bb
[ #1616 ] getsvc: Use slices.Reverse() where possible
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-30 06:50:37 +00:00
6410542d19
[ #1616 ] getsvc: Move range assembling to a separate file
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-30 06:50:37 +00:00
c0a341a7f6
[ #1616 ] getsvc: Move head assembling to a separate file
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-30 06:50:37 +00:00
e1a984e9d8
[ #1620 ] logs: Drop redundant trace_id fields
...
`trace_id` is taken from context.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-01-29 16:13:51 +03:00
abfd9657f9
[ #1617 ] govulncheck: Use patch release with security fixes
...
https://go.dev/doc/devel/release#go1.23.minor
Signed-off-by: Vitaliy Potyarkin <v.potyarkin@yadro.com>
2025-01-28 18:02:57 +03:00
a788d44773
[ #1570 ] cli: Use array type for attributes parameters
...
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-01-28 11:15:30 +03:00
603015d029
[ #1570 ] cli: Use array type for --range parameter to object hash
...
Signed-off-by: Ekaterina Lebedeva <ekaterina.lebedeva@yadro.com>
2025-01-28 11:15:30 +03:00
30e14d50ef
[ #1612 ] Makefile: Update golangci-lint
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-01-24 11:58:21 +03:00
951a7ee1c7
[ #1605 ] policer: Do not mutate slice under iteration
...
Nothing wrong with it, besides being difficult to read.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-21 05:34:54 +00:00
0bcbeb26b2
[ #1605 ] policer: Simplify processRepNodes() checks
...
Current flow is hard to reason about, #1601 is a notorious example of
accidental complexity.
1. Remove multiple nested ifs, use depth=1.
2. Process each status exactly once, hopefully preventing bugs like
#1601 .
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-21 05:34:54 +00:00
c98357606b
[ #1606 ] Use slices.Clone()/bytes.Clone() where possible
...
gopatch:
```
@@
var from, to expression
@@
+import "bytes"
-to := make([]byte, len(from))
-copy(to, from)
+to := bytes.Clone(from)
@@
var from, to expression
@@
+import "bytes"
-to = make([]byte, len(from))
-copy(to, from)
+to = bytes.Clone(from)
@@
var from, to, typ expression
@@
+import "slices"
-to := make([]typ, len(from))
-copy(to, from)
+to := slices.Clone(from)
@@
var from, to, typ expression
@@
+import "slices"
-to = make([]typ, len(from))
-copy(to, from)
+to = slices.Clone(from)
```
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-17 14:50:14 +03:00
80de5d70bf
[ #1593 ] node: Fix initialization of ape_chain cache
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-01-17 08:58:47 +00:00
57efa0bc8e
[ #1604 ] policer: Properly handle maintenance nodes
...
Consider `REP 1 REP 1` placement (selects/filters are omitted).
The placement is `[1, 2], [1, 0]`. We are the 0-th node.
Node 1 is under maintenance, so we do not replicate object
on the node 2. In the second replication group node 1 is under maintenance,
but current caching logic considers it as "replica holder" and removes
local copy. Voilà, we have DL if the object is missing from the node 1.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-16 16:37:52 +03:00
26e0c82fb8
[ #1604 ] policer/test: Add test for MAINTENANCE runtime status
...
The node can have MAINTENANCE status in the network map, but can also be
ONLINE while responding with MAINTENANCE. These are 2 different code
paths, let's test them separately.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-16 16:37:16 +03:00
4538ccb12a
[ #1604 ] policer: Do not process the same node twice
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-16 16:37:16 +03:00
84e1599997
[ #1604 ] policer: Remove one-line helpers
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-16 16:37:16 +03:00
5a270e2e61
[ #1604 ] policer: Use status instead of bool value in node cache
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-16 16:37:16 +03:00
436d65d784
[ #1591 ] Build and host OCI images on our own infra
...
Similar to TrueCloudLab/frostfs-s3-gw#587
this PR introduces a CI pipeline that builds Docker images and pushes them
to our selfhosted registry.
Signed-off-by: Vitaliy Potyarkin <v.potyarkin@yadro.com>
2025-01-16 07:46:53 +00:00
c3c034ecca
[ #1601 ] util: Correctly parse 'root' name for container resources
...
* Convert `root/*` to `//`;
* Add unit-test case for parses to check parsing correctness.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2025-01-15 12:13:02 +00:00
05fd999162
[ #1600 ] fstree: Handle incomplete writes
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-14 14:52:35 +03:00
eff95bd632
[ #1598 ] engine: Drop unnecessary result structs
...
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-01-14 11:15:21 +03:00
fb928616cc
[ #1598 ] golangci: Enable unparam linter
...
To drop unnecessary parameters and return values.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-01-14 09:06:47 +03:00
4d5ae59a52
[ #1598 ] golangci: Enable unconvert linters
...
To drop unnecessary conversions.
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2025-01-14 09:06:40 +03:00
a9f27e074b
[ #1243 ] object: Look for X-Headers within origin before APE check
...
* X-Headers can be found in `origin` field of `MetaHeader` if the request
has been forwarded from non-container node.
Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
2025-01-13 12:07:27 +00:00
6c51f48aab
[ #1596 ] metrics: Create public aliases for internal engine
metrics
...
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
2025-01-13 10:05:01 +00:00
a2485637bb
[ #1593 ] node/config_example: Add description of morph/cache_ttl=0 behavior
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-01-10 15:13:10 +03:00
09faca034c
[ #1593 ] node: Fix initialization of frostfsid cache
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-01-10 15:01:36 +03:00
ceac1c8709
[ #1594 ] dev: Remove unused parameter 'FROSTFS_MORPH_INACTIVITY_TIMEOUT'
...
Signed-off-by: Alexander Chuprov <a.chuprov@yadro.com>
2025-01-09 20:52:24 +03:00
f7e75b13b0
[ #1506 ] ape_manager: Await tx persist before returning response
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 12:04:21 +00:00
198aaebc94
[ #1506 ] morph: Simplify WaitTxHalt() signature
...
Avoid dependency on `morph/client` package because of `InvokeRes`.
Make signature resemble `WaitAny()` method of `waiter.Waiter` from neo-go.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 12:04:21 +00:00
85af6bcd5c
[ #1506 ] ape: Use contract reader in ListMorphRuleChains()
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 12:04:21 +00:00
8a658de0b2
[ #1506 ] ape: Do not create cosigners slice on each contract invocation
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 12:04:21 +00:00
3900b92927
Revert "[ #1492 ] metabase: Ensure Unmarshal() is called on a cloned slice"
...
This reverts commit 8ed7a676d5
.
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 14:34:20 +03:00
5ccb3394b4
[ #1592 ] go.mod: Update sdk-go
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 14:34:16 +03:00
dc410fca90
[ #1590 ] adm: Accept many accounts in proxy-*
commands
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 07:51:54 +00:00
cddcd73f04
[ #1590 ] adm: Make --account
flag required in proxy-*
commands
...
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2025-01-09 07:51:54 +00:00