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

[7.17] WaitForSnapshotStep verifies if the index belongs to the latest snapshot of that SLM policy (#100911) #101030

Merged
merged 2 commits into from
Oct 18, 2023

Commits on Oct 18, 2023

  1. WaitForSnapshotStep verifies if the index belongs to the latest sna…

    …pshot of that SLM policy (elastic#100911)
    
    The `WaitForSnapshotStep` used to check if the SLM policy has been
    executed after the index has entered the delete phase, but it did not
    check if the SLM policy included this index.
    
    The result of this is that if the user used an SLM policy that did not
    include this index, when the index would enter the
    `WaitForSnapshotStep`, it would wait for a snapshot to be taken, a
    snapshot that would not include the index, and then ILM would delete the
    index.
    
    See the exact reproduction path:
    elastic#57809
    
    **Solution** This PR, after it finds a successful SLM run, it verifies
    if the snapshot taken by SLM contains this index. If not it throws an
    error, otherwise it proceeds.
    
    ILM explain will report:
    
    ```
    "step_info": {
            "type": "illegal_state_exception",
            "reason": "the last successful snapshot of policy 'hourly-snapshots' does not include index '.ds-my-other-stream-2023.10.16-000001'"
          }
    ```
    
    **Backwards compatibility concerns** In this PR, the
    `WaitForSnapshotStep` changed from `ClusterStateWaitStep` to
    `AsyncWaitStep`. We do not think this is gonna cause an issue. This was
    tested manually by the following steps: - Run a master node with the old
    version. - When ILM is executing `wait-for-snapshot`, we shutdown the
    node - We start the node again with the new version os ES - ES was able
    to pick up the step and continue with the new code.
    
    We believe that this covers bwc concerns.
    
    Fixes: elastic#57809
    (cherry picked from commit 5697fcf)
    
    # Conflicts:
    #	x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/WaitForSnapshotStepTests.java
    gmarouli committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    60734ea View commit details
    Browse the repository at this point in the history
  2. Update 100911.yaml

    gmarouli authored Oct 18, 2023
    Configuration menu
    Copy the full SHA
    2e1a0e6 View commit details
    Browse the repository at this point in the history