abh1sar opened a new pull request, #14466: URL: https://github.com/apache/cloudstack/pull/14466
Deleting a disk-only VM snapshot merged each volume on its own and reported a single result, and the host kept merging after the management server had stopped waiting, so a timeout or a failure on one volume left already-merged volumes pointing to deleted files. * The host now holds active commits at the ready state and pivots them only once every volume is ready, cancels every job (leaving each backing chain unchanged) when one fails or the command's wait is about to run out, and reports which volumes were merged. * The management server sends its wait to the host, records exactly the merged volumes, marks the VM snapshot as Error on failure, and resumes the remaining volumes when the deletion is retried. ### Description This PR... <!--- Describe your changes in DETAIL - And how has behaviour functionally changed. --> <!-- For new features, provide link to FS, dev ML discussion etc. --> <!-- In case of bug fix, the expected and actual behaviours, steps to reproduce. --> <!-- When "Fixes: #<id>" is specified, the issue/PR will automatically be closed when this PR gets merged --> <!-- For addressing multiple issues/PRs, use multiple "Fixes: #<id>" --> <!-- Fixes: # --> <!--- ******************************************************************************* --> <!--- NOTE: AUTOMATION USES THE DESCRIPTIONS TO SET LABELS AND PRODUCE DOCUMENTATION. --> <!--- PLEASE PUT AN 'X' in only **ONE** box --> <!--- ******************************************************************************* --> ### Types of changes - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] New feature (non-breaking change which adds functionality) - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] Enhancement (improves an existing feature and functionality) - [ ] Cleanup (Code refactoring and cleanup, that may add test cases) - [ ] Build/CI - [ ] Test (unit or integration test code) ### Feature/Enhancement Scale or Bug Severity #### Feature/Enhancement Scale - [ ] Major - [ ] Minor #### Bug Severity - [ ] BLOCKER - [ ] Critical - [ ] Major - [ ] Minor - [ ] Trivial ### Screenshots (if appropriate): ### How Has This Been Tested? | # | Test case | Result | |---|---|---| | 1 | Delete current snapshot, running VM, 7.5 GB to merge, 5 s host budget | Aborted cleanly, snapshot `Error`, DB consistent | | 2 | Stop and start the VM after 1 | Starts | | 3 | Same delete, VM stopped (`qemu-img commit` path) | Aborted before any chain change | | 4 | Retry A3's delete from `Error`, default wait | Success, both disks merged | | 5 | Delete an older snapshot (non-active merge), running VM | Success | | 6 | Delete current snapshot, VM stopped | Success | | 7 | Non-active merge where DATA finishes and ROOT does not, 5 s host budget | Partial, recorded per volume | | 8 | Retry P1 with default wait | Resumed ROOT only | <!-- Please describe in detail how you tested your changes. --> <!-- Include details of your testing environment, and the tests you ran to --> #### How did you try to break this feature and the system with this change? <!-- see how your change affects other areas of the code, etc. --> <!-- Please read the [CONTRIBUTING](https://github.com/apache/cloudstack/blob/main/CONTRIBUTING.md) document --> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
