-
Notifications
You must be signed in to change notification settings - Fork 735
healthcheck segfault while retrying Whiteboard #17836
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
Conversation
|
🟢 |
|
⚪ |
|
⚪ |
7aafc8c to
b0d6515
Compare
|
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
|
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
b0d6515 to
20f249e
Compare
|
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
|
⚪ Test history | Ya make output | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat
⚪ Test history | Ya make output | Test bloat | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
…heck-segfault healthcheck segfault while retrying Whiteboard (#17836) - merge stable-25-1
…heck-segfault healthcheck segfault while retrying Whiteboard (#17836) - merge stable-24-4
Changelog entry
Fix segfault that could happen while retrying Whiteboard requests #18145
Changelog category
Description for reviewers
A segfault occurs when iterating over
nodeSystemState.poolstats().Here,
nodeSystemStateis retrieved fromMergedNodeSystemState, which stores raw pointers (TSystemStateInfo*).These pointers refer to objects inside
NodeSystemState, which is intended to keep the pointed-to objects alive.However, if an assignment is made to the same key in
NodeSystemState, the oldTSystemStateInfoobject is destroyed,leaving the pointer in
MergedNodeSystemStatedangling.Possible scenario
TEvInterconnect::TEvNodeDisconnectedis received from one of the nodes; HealthCheck schedules aTEvRetryNodeWhiteboardwithout waiting for the firstSystemInforesponse.SystemInforesponse arrives.TEvRetryNodeWhiteboardis processed, overwriting the value inNodeSystemState, leaving a dangling pointer inMergedNodeSystemState.SystemInforesponse does not arrive in time; HealthCheck response formation begins.nodeSystemState.poolstats().