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

fix(backups): disable CBT when CBT is unusable #8313

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

fbeauchamp
Copy link
Collaborator

Description

Short explanation of this PR (feel free to re-use commit message)

Checklist

  • Commit
    • Title follows commit conventions
    • Reference the relevant issue (Fixes #007, See xoa-support#42, See https://...)
    • If bug fix, add Introduced by
  • Changelog
    • If visible by XOA users, add changelog entry
    • Update "Packages to release" in CHANGELOG.unreleased.md
  • PR
    • If UI changes, add screenshots
    • If not finished or not tested, open as Draft

Review process

This 2-passes review process aims to:

  • develop skills of junior reviewers
  • limit the workload for senior reviewers
  • limit the number of unnecessary changes by the author
  1. The author creates a PR.
  2. Review process:
    1. The author assigns the junior reviewer.
    2. The junior reviewer conducts their review:
      • Resolves their comments if they are addressed.
      • Adds comments if necessary or approves the PR.
    3. The junior reviewer assigns the senior reviewer.
    4. The senior reviewer conducts their review:
      • If there are no unresolved comments on the PR → merge.
      • Otherwise, we continue with 3.
  3. The author responds to comments and/or makes corrections, and we go back to 2.

Notes:

  1. The author can request a review at any time, even if the PR is still a Draft.
  2. In theory, there should not be more than one reviewer at a time.
  3. The author should not make any changes:
    • When a reviewer is assigned.
    • Between the junior and senior reviews.

@fbeauchamp fbeauchamp force-pushed the fix_disable_cbt_on_failure branch from d71a2fe to c9e6146 Compare February 5, 2025 09:54
@rtjdamen
Copy link

Hi @fbeauchamp, i want to comment on this one. It’s not needed to disable cbt on the vdi itself, just removing all cbt snapshots and run a new full is enough to resolve the problems with invalid cbt here. We have seen some rare issues with disabling CBT on a running VM causing the vdi to get stucked into paused state. So i think it’s better to not run that command unsupervised without knowing what can happen.

@fbeauchamp fbeauchamp force-pushed the fix_disable_cbt_on_failure branch from c9e6146 to bf0b696 Compare February 19, 2025 09:32
@fbeauchamp fbeauchamp marked this pull request as ready for review February 19, 2025 09:59
@fbeauchamp
Copy link
Collaborator Author

Hi @fbeauchamp, i want to comment on this one. It’s not needed to disable cbt on the vdi itself, just removing all cbt snapshots and run a new full is enough to resolve the problems with invalid cbt here. We have seen some rare issues with disabling CBT on a running VM causing the vdi to get stucked into paused state. So i think it’s better to not run that command unsupervised without knowing what can happen.

this won't be run automatically, at least for now. It will be used when manually disabling Changed Block Tracking , as an additional way to clean up any remaining data, broken cbt chain.
Also calling disable_cbt on the xapi is the only way to make it remove the *.cbtlog file without accessing the storage repository

@fbeauchamp fbeauchamp requested a review from b-Nollet February 19, 2025 10:00
Copy link
Contributor

@b-Nollet b-Nollet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me apart from the little typos in the comments

const e = new Error(`can't create a stream from a metadata VDI, fall back to a base `)
e.code = 'VDI_CANT_DO_DELTA'
// CBt is not usable: reset it
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// CBt is not usable: reset it
// CBT is not usable: reset it

}
}
/**
* xapi can't disable CBT on a snapshot OPERATION_NOT_ALLOWED(VDI is a snapshot )
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* xapi can't disable CBT on a snapshot OPERATION_NOT_ALLOWED(VDI is a snapshot )
* xapi can't disable CBT on a snapshot OPERATION_NOT_ALLOWED(VDI is a snapshot)

@b-Nollet b-Nollet requested a review from MathieuRA February 20, 2025 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants