Repository navigation
Nasbackup quiesce fixes - #14305
Nasbackup quiesce fixes#14305MitchDrage wants to merge 9 commits into
Conversation
|
@MitchDrage thanks for the PR. I'll review/test it in the next few days. |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Ambiguous freeze/thaw and job-status failures can still leave guests frozen or delete destinations under active jobs, while failed-row retention remains incomplete.
Review effort: Balanced
Findings: 2
Open (3)
What changed in this PR
Fixes NAS backup quiescing, cleanup, and failed scheduled-backup handling.
Changes:
- Adds configurable guest-agent freeze/thaw timeouts.
- Aborts active libvirt jobs before cleanup.
- Preserves metadata for failed scheduled backups and expands tests.
| File | Description |
|---|---|
BackupManagerTest.java |
Tests failed scheduled-backup linkage. |
BackupManagerImpl.java |
Persists metadata on failed backups. |
nasbackup.sh |
Handles quiescing, aborts, and cleanup. |
LibvirtTakeBackupCommandWrapperTest.java |
Tests timeout argument forwarding. |
LibvirtTakeBackupCommandWrapper.java |
Passes timeout to the script. |
NASBackupProviderTest.java |
Tests failure and cleanup behavior. |
NASBackupProvider.java |
Adds timeout configuration and returns Error backups. |
TakeBackupCommand.java |
Carries the quiesce timeout. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## 4.22 #14305 +/- ##
============================================
+ Coverage 18.00% 18.03% +0.03%
- Complexity 16219 16261 +42
============================================
Files 5936 5936
Lines 535716 535849 +133
Branches 65596 65614 +18
============================================
+ Hits 96459 96665 +206
+ Misses 428268 428166 -102
- Partials 10989 11018 +29
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
@vladimirpetrov @sureshanaparti could this go into the 4.22.2 milestone? It's a bug fix against 4.22. |
abh1sar
left a comment
There was a problem hiding this comment.
LGTM. Reviewed and tested.
- Failed scheduled backup shown as MANUAL - Verified
- Guest agent timeout not configurable - Verified that the timeout value is transmitted and honoured
- cleanup() removing the destination under a running job. - Verified that cleanup aborted the job
- Failed freeze never thawed - Verified that the guest was thawed in this case.
Also did regression testing around common backup operations and incremental backups. All passed.
|
@blueorangutan package |
|
@abh1sar a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 19472 |
Damans227
left a comment
There was a problem hiding this comment.
thanks @MitchDrage, fixes look right. LGTM
|
@blueorangutan test |
|
@abh1sar a [SL] Trillian-Jenkins test job (ol8 mgmt + kvm-ol8) has been kicked to run smoke tests |
|
[SF] Trillian test result (tid-17107)
|
|
Can we mere this @vladimirpetrov @sureshanaparti ? |


Description
Fixes #14295, one commit per issue:
BackupManagerImplrecords the schedule id, name and description on it.nas.backup.quiesce.agent.timeout(default 30 seconds, 0 keeps libvirt's default of 5), passed tonasbackup.shas--quiesce-timeoutand on tovirsh --timeoutfor freeze and thaw. The per-VM override from the issue is left out.cleanup()now runsvirsh domjobabortand waits up to 60 seconds for the job to end. If it is still running, the files and mount are left in place and the backup goes to Error state. Also fixed theFailedbranch of the job polling loop, which calledcleanupwithout exiting.Types of changes
Feature/Enhancement Scale or Bug Severity
Bug Severity
I've listed this as major as I'm having backups continuously fail. I've applied the timeout to nasbackup.sh by hand as a workaround and I'm waiting on the next scheduled run to confirm it. I'll add a comment tomorrow as to the result, or add some changes to fix it.
How Has This Been Tested?
BackupManagerTest,NASBackupProviderTestand a newLibvirtTakeBackupCommandWrapperTest. These and the NAS plugin suite pass.nasbackup.shagainst stubvirsh/mountcommands for each failure path, including an abort that never completes.--timeout 30on freeze and thaw completed. Separately, aborting a running push backup ended the job about 1.4 seconds afterdomjobabortreturned, after which the destination could be removed and unmounted.How did you try to break this feature and the system with this change?