-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Panic in binary replication #2978
Milestone
Comments
It always had |
roman-khimov
added
bug
Something isn't working
U2
Seriously planned
S4
Routine
I4
No visible changes
labels
Oct 23, 2024
|
This was referenced Nov 8, 2024
@roman-khimov, i think we found the root reason for it? Also we know that it will not be possible in 0.44 |
It will be possible if you won't fix it. |
carpawell
added a commit
that referenced
this issue
Nov 23, 2024
If ants pool is busy and cannot take task, early `return` without `wg.Wait()` leads to `iterateNodesForObject`'s `return` and all the buffers for binary replication from now may be reused while are still in use by the other routines inside the pool. Wait for WG and try other nodes more instead, it also can increase the rate of successful PUTs at high loads. Closes #2978. Signed-off-by: Pavel Karpy <[email protected]>
carpawell
added a commit
that referenced
this issue
Nov 23, 2024
If ants pool is busy and cannot take task, early `return` without `wg.Wait()` leads to `iterateNodesForObject`'s `return` and all the buffers for binary replication from now may be reused while are still in use by the other routines inside the pool. Wait for WG and try other nodes more instead, it also can increase the rate of successful PUTs at high loads. Closes #2978. Signed-off-by: Pavel Karpy <[email protected]>
carpawell
added a commit
that referenced
this issue
Nov 25, 2024
If ants pool is busy and cannot take task, early `return` without `wg.Wait()` leads to `iterateNodesForObject`'s `return` and all the buffers for binary replication from now may be reused while are still in use by the other routines inside the pool. Wait for WG before any `return` is called. Closes #2978, #2988, #2975, #2971. Signed-off-by: Pavel Karpy <[email protected]>
carpawell
added a commit
that referenced
this issue
Nov 25, 2024
If ants pool is busy and cannot take task, early `return` without `wg.Wait()` leads to `iterateNodesForObject`'s `return` and all the buffers for binary replication from now may be reused while are still in use by the other routines inside the pool. Wait for WG before any `return` is called. Closes #2978, closes #2988, closes #2975, closes #2971. Signed-off-by: Pavel Karpy <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Expected Behavior
No panic
Current Behavior
Panic
Possible Solution
Do not do out of range?
Steps to Reproduce (for bugs)
Not sure, some high load with blocks that @AnnaShaleva and @AliceInHunterland usually do.
Context
Loading neo-go blocks to NeoFS.
Your Environment
NeoFS Storage node
Version: 0.43.0
GoVersion: go1.22.6
The text was updated successfully, but these errors were encountered: