Possible problems with XHeader processing #465
Labels
No labels
P0
P1
P2
P3
badger
frostfs-adm
frostfs-cli
frostfs-ir
frostfs-lens
frostfs-node
good first issue
triage
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-node#465
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
We don't set netmap epoch XHeader for auxiliary queries in the object service
// FIXME: (neofs-node#1194) not supported by client
However, it seems we set it impliticly via the x-headers. It is a problem:
netmap_depth ^ TTL
(first node searches at epochs N..N-D+1, another nodes searches N..N-D+1, N-1..N-D etc.), because XHeaders are being sent unchanged.API description is vague
// Netmap epoch to use for object placement calculation. The `value` is string
Let's discuss and fix the behaviour.
cc @alexvanin @realloc
The problem with request amplification is not here, because it DEPTH header is filtered
for i := range xHdrs {
switch key := xHdrs[i].GetKey(); key {
case session.XHeaderNetmapEpoch:
var err error
prm.netmapEpoch, err = strconv.ParseUint(xHdrs[i].GetValue(), 10, 64)
if err != nil {
return nil, err
}
case session.XHeaderNetmapLookupDepth:
var err error
prm.netmapLookupDepth, err = strconv.ParseUint(xHdrs[i].GetValue(), 10, 64)
if err != nil {
return nil, err
}
default:
prm.xhdrs = append(prm.xhdrs, key, xHdrs[i].GetValue())
}
}
The EPOCH header still needs to be attached, though.