mirror of
https://github.com/nspcc-dev/neofs-http-gw.git
synced 2026-03-01 04:29:08 +00:00
Can't put object after removing storage node from netmap and then restoring it #75
Labels
No labels
I1
I3
I4
S2
S3
S4
U2
U2
U3
U4
blocked
bug
config
documentation
enhancement
go
good first issue
help wanted
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nspcc-dev/neofs-http-gw#75
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 @vdomnich-yadro on GitHub (Aug 29, 2022).
The issue reproduces on devenv with 4 storage nodes and 1 http gateway.
Steps to Reproduce (for bugs)
NOTE1: In brackets I provide timestamp from the log to match steps with the test run.
NOTE2: I am using specific node names in the steps, but the issue reproduces if other nodes are chosen.
Referenced logs of the steps:
log1
log2
Steps:
neofs-cli control set-status(log1 timestamp 06:41:40).log1 timestamp 06:41:42-06:41:46)log1 timestamp 06:41:47)log1 timestamp 06:41:48)log1 timestamp 06:41:50-06:41:52)log1 timestamp 06:41:53)log1 timestamp 06:41:54-06:42:01)log1 timestamp 06:42:02-06:42:08)log1 timestamp 06:42:08-06:42:10).log1 timestamp 06:42:10-06:42:17)log2 timestamp 06:42:43) Client-side error message:Expected Behavior
Object PUT should succeed.
Current Behavior
Some random tests (1-3 tests per run) are failing with Go SDK error "missing ID field in the response"
However, if we do not do any manipulations with taking storage nodes down and then restoring them (steps 1-12), the http gateway tests are passing.
In any case client-side logging of neofs-go-sdk is not sufficient to figure out more info about what is going on, so I would like us to extend the logging there so that we can at least see what the response from the storage node was.
Regression
Might be a regression after refactoring of object PUT in neofs-go-sdk, but not sure.
Your Environment
@vdomnich-yadro commented on GitHub (Aug 29, 2022):
Steps logs:
log1.txt
log2.txt
HTTP gateway log:
http_log.txt
Storage node logs:
s01_log.txt
s02_log.txt
s03_log.txt
s04_log.txt
@KirillovDenis commented on GitHub (Aug 29, 2022):
Please provide version of
neofs-http-gw@vdomnich-yadro commented on GitHub (Aug 29, 2022):
@KirillovDenis sorry for missing it in the first place, http gateway was built from:
e0ab9294103bab4a6cf96c5500a5430069d0fce7@vdomnich-yadro commented on GitHub (Aug 29, 2022):
And the strange thing is that logs of storage nodes do not reflect the failing call at all. Not sure whether the request from http gateway dies before actually hitting any of the storage nodes...
@KirillovDenis commented on GitHub (Aug 29, 2022):
Could you reproduce this issue using http-gw from this branch? We will get more clear error (instead of
missing ID field in the response)@vdomnich-yadro commented on GitHub (Aug 29, 2022):
@KirillovDenis I tried multiple times with the branch that you've suggested. And the only error that was reported with it was "session token not found". Please, find attached the logs
I saw "session token not found" a couple weeks before and discussed it with @realloc. Per our discussion it was a strange error because the container that we are using in tests is public read-write.
@vdomnich-yadro commented on GitHub (Aug 30, 2022):
A bit more about steps: if I run the same steps without stopping and then starting Docker container (steps #3 and #6), then the issue does not occur.
@KirillovDenis commented on GitHub (Aug 30, 2022):
It seems persisting session in nodes is disabled. Try to enable it by using this variable
@vdomnich-yadro commented on GitHub (Aug 30, 2022):
@KirillovDenis I changed the setting and made several runs with it. The
session token not foundandmissing ID field in the responseerrors did not occur when I am putting an object.Should we consider this as resolved?
If yes, then I would ask @alexvanin to do corresponding change in devenv branch for nightly builds.
@KirillovDenis commented on GitHub (Aug 30, 2022):
I think so.