[libvirt PATCH 07/11] test: snapshot revert: always emulate VM process stop

Pavel Hrdina posted 11 patches 4 years, 2 months ago
[libvirt PATCH 07/11] test: snapshot revert: always emulate VM process stop
Posted by Pavel Hrdina 4 years, 2 months ago
Reflect the same change in test driver as in QEMU driver because the
compatibility check code isn't perfect.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
 src/test/test_driver.c | 29 +++++++----------------------
 1 file changed, 7 insertions(+), 22 deletions(-)

diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 2fa78a15d6..0da8a2ea0f 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -9077,28 +9077,13 @@ testDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
 
         if (virDomainObjIsActive(vm)) {
             /* Transitions 5, 6, 8, 9 */
-            /* Check for ABI compatibility.  */
-            if (!virDomainDefCheckABIStability(vm->def, config,
-                                               privconn->xmlopt)) {
-                virErrorPtr err = virGetLastError();
-
-                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 cleanup;
-                }
-
-                virResetError(err);
-                testDomainShutdownState(snapshot->domain, vm,
-                                        VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT);
-                event = virDomainEventLifecycleNewFromObj(vm,
-                            VIR_DOMAIN_EVENT_STOPPED,
-                            VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT);
-                virObjectEventStateQueue(privconn->eventState, event);
-                goto load;
-            }
+            testDomainShutdownState(snapshot->domain, vm,
+                                    VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT);
+            event = virDomainEventLifecycleNewFromObj(vm,
+                                                      VIR_DOMAIN_EVENT_STOPPED,
+                                                      VIR_DOMAIN_EVENT_STOPPED_FROM_SNAPSHOT);
+            virObjectEventStateQueue(privconn->eventState, event);
+            goto load;
 
             if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) {
                 /* Transitions 5, 6 */
-- 
2.31.1

Re: [libvirt PATCH 07/11] test: snapshot revert: always emulate VM process stop
Posted by Peter Krempa 4 years, 2 months ago
On Mon, Nov 15, 2021 at 17:22:50 +0100, Pavel Hrdina wrote:
> Reflect the same change in test driver as in QEMU driver because the
> compatibility check code isn't perfect.
> 
> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> ---
>  src/test/test_driver.c | 29 +++++++----------------------
>  1 file changed, 7 insertions(+), 22 deletions(-)

Reviewed-by: Peter Krempa <pkrempa@redhat.com>

Re: [libvirt PATCH 07/11] test: snapshot revert: always emulate VM process stop
Posted by Peter Krempa 4 years, 2 months ago
On Tue, Nov 16, 2021 at 16:15:54 +0100, Peter Krempa wrote:
> On Mon, Nov 15, 2021 at 17:22:50 +0100, Pavel Hrdina wrote:
> > Reflect the same change in test driver as in QEMU driver because the
> > compatibility check code isn't perfect.
> > 
> > Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> > ---
> >  src/test/test_driver.c | 29 +++++++----------------------
> >  1 file changed, 7 insertions(+), 22 deletions(-)
> 
> Reviewed-by: Peter Krempa <pkrempa@redhat.com>

This breaks the 'virsh-snapshot' testsuite. (I suggest you configure
your build env with -Dexpensive_tests=enabled.)

[libvirt PATCH 06.5/12] test: snapshot revert: properly emulate starting CPUs
Posted by Pavel Hrdina 4 years, 2 months ago
When active snapshot is reverted we stop CPUs in order to load the
snapshot but we never start the CPUs again.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
 src/test/test_driver.c |  3 +++
 tests/virsh-snapshot   | 14 +++++++-------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index c17ed9d2a4..985f08ea1f 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -9144,6 +9144,9 @@ testDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
             virObjectUnref(event);
             event = NULL;
 
+            virDomainObjSetState(vm, VIR_DOMAIN_RUNNING,
+                                 VIR_DOMAIN_PAUSED_FROM_SNAPSHOT);
+
             if (was_stopped) {
                 /* Transition 2 */
                 event = virDomainEventLifecycleNewFromObj(vm,
diff --git a/tests/virsh-snapshot b/tests/virsh-snapshot
index 289de5b2db..4c64bb537b 100755
--- a/tests/virsh-snapshot
+++ b/tests/virsh-snapshot
@@ -137,25 +137,25 @@ Domain snapshot s1 deleted
  Name   Creation Time               State
 ---------------------------------------------
  s3     TIMESTAMP   running
- s7     TIMESTAMP   paused
+ s7     TIMESTAMP   running
 
  Name   Creation Time               State
 ---------------------------------------------
  s2     TIMESTAMP   running
- s4     TIMESTAMP   paused
- s5     TIMESTAMP   paused
- s8     TIMESTAMP   paused
+ s4     TIMESTAMP   running
+ s5     TIMESTAMP   running
+ s8     TIMESTAMP   running
 
  Name   Creation Time               State     Parent
 ------------------------------------------------------
  s3     TIMESTAMP   running
- s6     TIMESTAMP   paused    s3
- s7     TIMESTAMP   paused
+ s6     TIMESTAMP   running   s3
+ s7     TIMESTAMP   running
 
  Name   Creation Time               State
 ---------------------------------------------
  s2     TIMESTAMP   running
- s6     TIMESTAMP   paused
+ s6     TIMESTAMP   running
 
 s2
 s4
-- 
2.31.1

Re: [libvirt PATCH 06.5/12] test: snapshot revert: properly emulate starting CPUs
Posted by Peter Krempa 4 years, 2 months ago
On Tue, Nov 23, 2021 at 09:20:20 +0100, Pavel Hrdina wrote:
> When active snapshot is reverted we stop CPUs in order to load the
> snapshot but we never start the CPUs again.
> 
> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> ---
>  src/test/test_driver.c |  3 +++
>  tests/virsh-snapshot   | 14 +++++++-------
>  2 files changed, 10 insertions(+), 7 deletions(-)

Reviewed-by: Peter Krempa <pkrempa@redhat.com>