Bug 1875390

Summary: An invocation "Run selected snapshot" is not operational
Product: [Community] Virtualization Tools Reporter: ricky.tigg
Component: virt-managerAssignee: Cole Robinson <crobinso>
Status: CLOSED CANTFIX QA Contact:
Severity: medium Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: berrange, crobinso, gscrivan, mhicks
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-14 16:17:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description ricky.tigg 2020-09-03 13:00:16 UTC
Description of problem: An invocation "Run selected snapshot" is not operational.

Version-Release number of component: virt-manager.noarch 2.2.1-3.fc32

Steps to Reproduce:
1. Create two snapshots;
2. Delete the snapshot created last;
3. Invoke run-operation while the focus is on the snapshot created first.

Actual results:
1. Each snapshot has its VM state reported as "Running".
2. As intended, VM current session is kept active after the deletion.

3. Snapshot is no run; Message produced by virt-manager:

Error running snapshot 'snapshot1': revert requires force: Target CPU feature count 18 does not match source 19

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 111, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 66, in newfn
    ret = fn(self, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/object/domain.py", line 1049, in revert_to_snapshot
    self._backend.revertToSnapshot(snap.get_backend())
  File "/usr/lib64/python3.8/site-packages/libvirt.py", line 2187, in revertToSnapshot
    if ret == -1: raise libvirtError ('virDomainRevertToSnapshot() failed', dom=self)
libvirt.libvirtError: revert requires force: Target CPU feature count 18 does not match source 19


Expected results:
1. A unique snapshot to have its VM state reported as "Running".
3. Invoked operation to be effective.

Comment 1 Cole Robinson 2020-09-14 16:17:46 UTC
That is a warning from libvirt. Some time since you created that snapshot, the CPU config
it detects for your host has changed. This can happen with microcode updates on the
host for example. libvirt is warning that your host CPU does not seem compatible with
the host CPU that created the snapshot, and is erroring because it may not work or
cause runtime issues.

You can 'sudo virsh snapshot-revert $VM $SNAPNAME --force' to force it to work.
It may cause runtime issues but if it was due to a microcode update then maybe
not.

So unfortunately this is a legitimate issue libvirt is warning about AFAIK and
not anything specific to virt-manager.

Comment 2 ricky.tigg 2020-09-16 10:54:56 UTC
Without your interpretation I wouldn't have been able to guess the meanings. Can you confirm that while a VM has several snapshots and for each of them the VM state is reported as "Running" be the guest running or not, is not an issue.

Comment 3 Cole Robinson 2020-09-16 13:51:17 UTC
Having multiple snapshots in running state is completely fine.

Yes I agree that the error message is very confusing. Unfortunately memory snapshot compatibility across qemu versions is a very complicated topic.