If the the snapshot revert involves a forced revert option, then
let's not cause startup to change the genid flag in order to signify
that we're still running the same/previous guest and not some
snapshot reversion.
https://bugzilla.redhat.com/show_bug.cgi?id=1149445
Signed-off-by: John Ferlan <jferlan@redhat.com>
---
src/qemu/qemu_driver.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 01011906d1..f737f4d350 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -16136,12 +16136,14 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
}
/* If using VM GenID, there is no way currently to change
- * the genid for the running guest, so set an error and
- * mark as incompatible. */
+ * the genid for the running guest, so set an error,
+ * mark as incompatible, and don't allow change of genid
+ * if the revert force flag would start the guest again. */
if (compatible && config->genidRequested) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("domain genid update requires restart"));
compatible = false;
+ start_flags &= ~VIR_QEMU_PROCESS_START_GEN_VMID;
}
if (!compatible) {
--
2.14.4
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
On 06/20/2018 12:54 AM, John Ferlan wrote: > If the the snapshot revert involves a forced revert option, then > let's not cause startup to change the genid flag in order to signify > that we're still running the same/previous guest and not some > snapshot reversion. > > https://bugzilla.redhat.com/show_bug.cgi?id=1149445 > > Signed-off-by: John Ferlan <jferlan@redhat.com> > --- > src/qemu/qemu_driver.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 01011906d1..f737f4d350 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -16136,12 +16136,14 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot, > } > > /* If using VM GenID, there is no way currently to change > - * the genid for the running guest, so set an error and > - * mark as incompatible. */ > + * the genid for the running guest, so set an error, > + * mark as incompatible, and don't allow change of genid > + * if the revert force flag would start the guest again. */ > if (compatible && config->genidRequested) { > virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > _("domain genid update requires restart")); > compatible = false; > + start_flags &= ~VIR_QEMU_PROCESS_START_GEN_VMID; Pre-existing, but what is the point of this virReportError() if it does not cause domain starting? Michal -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
On 06/20/2018 09:20 AM, Michal Privoznik wrote: > On 06/20/2018 12:54 AM, John Ferlan wrote: >> If the the snapshot revert involves a forced revert option, then >> let's not cause startup to change the genid flag in order to signify >> that we're still running the same/previous guest and not some >> snapshot reversion. >> >> https://bugzilla.redhat.com/show_bug.cgi?id=1149445 >> >> Signed-off-by: John Ferlan <jferlan@redhat.com> >> --- >> src/qemu/qemu_driver.c | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c >> index 01011906d1..f737f4d350 100644 >> --- a/src/qemu/qemu_driver.c >> +++ b/src/qemu/qemu_driver.c >> @@ -16136,12 +16136,14 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot, >> } >> >> /* If using VM GenID, there is no way currently to change >> - * the genid for the running guest, so set an error and >> - * mark as incompatible. */ >> + * the genid for the running guest, so set an error, >> + * mark as incompatible, and don't allow change of genid >> + * if the revert force flag would start the guest again. */ >> if (compatible && config->genidRequested) { >> virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", >> _("domain genid update requires restart")); >> compatible = false; >> + start_flags &= ~VIR_QEMU_PROCESS_START_GEN_VMID; > > Pre-existing, but what is the point of this virReportError() if it does > not cause domain starting? > > Michal > See a few lines lower: if (!(flags & VIR_DOMAIN_SNAPSHOT_REVERT_FORCE)) { /* Re-spawn error using correct category. */ if (err->code == VIR_ERR_CONFIG_UNSUPPORTED) virReportError(VIR_ERR_SNAPSHOT_REVERT_RISKY, "%s", err->str2); goto endjob; } virResetError(err); It's thus "similar to" what virDomainDefCheckABIStabilityFlags would do (see a few lines above) when generating an error such as "Target domain disk count 1 does not match source 2" which is seen in bz1591628. A virsh failure would see : error: revert requires force: "%s" (message) which immediately for qe is followed by --force ;-) Tks for the review... John -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
© 2016 - 2025 Red Hat, Inc.