diff --git a/core/src/main/java/org/apache/cloudstack/backup/TakeBackupCommand.java b/core/src/main/java/org/apache/cloudstack/backup/TakeBackupCommand.java index 93855ea17211..a5500044f86e 100644 --- a/core/src/main/java/org/apache/cloudstack/backup/TakeBackupCommand.java +++ b/core/src/main/java/org/apache/cloudstack/backup/TakeBackupCommand.java @@ -89,6 +89,12 @@ public void setVolumePaths(List volumePaths) { @Override public boolean executeInSequence() { - return true; + // Returning false lets the KVM agent dispatch this command in parallel with + // other backup commands (notably DeleteBackupCommand). A long-running snapshot + // copy must not block a concurrent delete on a different VM's backup. Safe + // because each backup operates on its own on-NAS path (named after the VM + // uuid + timestamp) and the NFS mount lifecycle is per-script-invocation, + // not shared — so there is no path-level contention between parallel runs. + return false; } }