mirror of
https://github.com/nspcc-dev/neofs-node.git
synced 2026-03-01 04:29:10 +00:00
ID mismatch error for some mainnet objects #1471
Labels
No labels
I1
I2
I3
I4
S0
S1
S2
S3
S4
U0
U1
U2
U3
U4
blocked
bug
config
dependencies
discussion
documentation
enhancement
enhancement
epic
feature
go
good first issue
help wanted
neofs-adm
neofs-cli
neofs-cli
neofs-cli
neofs-ir
neofs-lens
neofs-storage
neofs-storage
performance
question
security
task
test
windows
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nspcc-dev/neofs-node#1471
Loading…
Add table
Add a link
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?
Originally created by @roman-khimov on GitHub (Aug 6, 2025).
Expected Behavior
Object get/head working correctly.
Current Behavior
Possible Solution
Need to find the root cause, maybe something like #3359 fix is relevant here as well.
Steps to Reproduce (for bugs)
Above.
Context
Mainnet.
Regression
Yes (ID wasn't checked before 0.48.0), but it shouldn't be. This mismatch suggests that header format has changed in some incompatible way. Or it was calculated incorrectly at some point and stored this way (which is rather strange as well).
Your Environment
@roman-khimov commented on GitHub (Aug 6, 2025):
The header (without signature and ID) from HEAD:
which is a valid protobuf
with checksum of 965f449a92bafee5d0d36622e01d0793e4b2d5e852faf4f62729bcadff22835c.
However the first 1K of file contents is radically different:
And protobuf parses choke on it:
One can find the sequence
0a040802starting the header (ID and signatures can also be located), but then this sequence is shorter than expected (till the end of attributes and start of payload which is clearly seen):or
And it's also incorrect protobuf.
None of chunks found to the moment match OID.
@roman-khimov commented on GitHub (Aug 6, 2025):
OID is 4925b3e21fef9813089944ce11498782ac2b766eaf9e3927d0f2641374449bd7 in hex, btw.
@roman-khimov commented on GitHub (Aug 6, 2025):
It looks as if session token is broken in the file, it has correct signature, but it lacks some internal data and has strange structure.
@roman-khimov commented on GitHub (Aug 7, 2025):
ZSTD kicks in, the real first 1K is
The original HEAD out of it is
And it does have 4925b3e21fef9813089944ce11498782ac2b766eaf9e3927d0f2641374449bd7 checksum.
@roman-khimov commented on GitHub (Aug 7, 2025):
It's a two-byte diff at 9.1.3 which is session token lifetime. It's either completely missing (reencoded with current code) or present with empty contents (old header,
1a00). So it's very close to https://github.com/nspcc-dev/neofs-sdk-go/pull/715 problem. Looks like we need to adjust the encoder here as well.