Skip to content
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

[v24.2.x] CORE-5766 Validate target node id when collecting health report #22835

Commits on Aug 10, 2024

  1. c/errc: introduced new error code indicating targeting invalid node

    Introduced an error code that indicates the node that the request was
    sent to is not the one that received it.
    
    Signed-off-by: Michał Maślanka <michal@redpanda.com>
    (cherry picked from commit 221a0b7)
    mmaslankaprv authored and vbotbuildovich committed Aug 10, 2024
    Configuration menu
    Copy the full SHA
    baccc98 View commit details
    Browse the repository at this point in the history
  2. c/status: validate responder node id when processing reply

    Added validation that checks if the node replying request is the one the
    request was sent to. The validation is important as the receiving node
    id might have changed while the RPC endpoint address stays the same.
    
    Signed-off-by: Michał Maślanka <michal@redpanda.com>
    (cherry picked from commit c514c9e)
    mmaslankaprv authored and vbotbuildovich committed Aug 10, 2024
    Configuration menu
    Copy the full SHA
    9422f05 View commit details
    Browse the repository at this point in the history
  3. c/health: added target node id to get_node_health_request

    Added a field indicating what node the request was targeted to. If
    present the `target_node_id` will be validated when processing the
    request.
    
    Signed-off-by: Michał Maślanka <michal@redpanda.com>
    (cherry picked from commit 7886aec)
    mmaslankaprv authored and vbotbuildovich committed Aug 10, 2024
    Configuration menu
    Copy the full SHA
    6ffdfb3 View commit details
    Browse the repository at this point in the history
  4. c/health: validate target_node_id when collecting health report

    The health report is used to determine if a cluster node is online and
    available. When a node id changes but the RPC endpoint does not change
    the requester may incorrectly assume that the node with the previous
    node_id but the same endpoint is still operational. Added validation of
    the node that the request was sent to before collecting the health
    report. This way a sender will have correct information about the node
    availability as only the request targeted to the node with the correct
    node id will be replied with success.
    
    Fixes: CORE-5766
    
    Signed-off-by: Michał Maślanka <michal@redpanda.com>
    (cherry picked from commit 90eafa8)
    mmaslankaprv authored and vbotbuildovich committed Aug 10, 2024
    Configuration menu
    Copy the full SHA
    1bb1531 View commit details
    Browse the repository at this point in the history
  5. tests: validate if node with old node is is reported as offline

    The node folder deletion test checks if a node joins the cluster with
    the new node id after its data folder was deleted. Introduced a new
    validation checking if in this case the node with the old node_id
    is reported as offline
    
    Signed-off-by: Michał Maślanka <michal@redpanda.com>
    (cherry picked from commit 6a8f390)
    mmaslankaprv authored and vbotbuildovich committed Aug 10, 2024
    Configuration menu
    Copy the full SHA
    2e65ee1 View commit details
    Browse the repository at this point in the history
  6. c/health: added validation of received health report node_id

    Added validation of the node_id of the reply received from the node. The
    report is not considered as valid if the reply node id doesn't match the
    id of node the report was sent to.
    
    Signed-off-by: Michał Maślanka <michal@redpanda.com>
    (cherry picked from commit 08de93d)
    mmaslankaprv authored and vbotbuildovich committed Aug 10, 2024
    Configuration menu
    Copy the full SHA
    134e50b View commit details
    Browse the repository at this point in the history