virDomainManagedSave: Requested operation is not valid: cannot migrate domain: non-migratable device: vhost-user-fs
Host environment
- Operating system:
Fedora 37
- OS/kernel version:
Linux fedora 6.1.12-200.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Feb 15 04:35:34 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
- Architecture:
x86_64
- QEMU flavor:
qemu-system-x86_64
- QEMU version:
QEMU emulator version 7.0.0 (qemu-7.0.0-13.fc37)
- QEMU command line: From
vmm
log file: - libvirt version:
8.6.0-5.fc37
- Hypervisor and version:
$ virsh version --daemon
Compiled against library: libvirt 8.6.0
Using library: libvirt 8.6.0
Using API: QEMU 8.6.0
Running hypervisor: QEMU 7.0.0
Running against daemon: 8.6.0
Emulated/Virtualized environment
- Operating system:
Ubuntu 22.10 kinetic
- OS/kernel version:
Linux ubuntu-vm 5.19.0-31-generic #32-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 20 15:20:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
- Architecture:
x86_64
Description of problem
Enabling a filesystem share, using the config below, disables managed saves. Disabling/removing the share, makes saves available again.
vmm log details output:
Error saving domain: Requested operation is not valid: cannot migrate domain: non-migratable device: 0000:00:02.6:00.0/vhost-user-fs
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 72, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/vmmenu.py", line 162, in cb
vm.save(meter=asyncjob.get_meter())
File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn
ret = fn(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/object/domain.py", line 1450, in save
self._backend.managedSave(0)
File "/usr/lib64/python3.11/site-packages/libvirt.py", line 1799, in managedSave
raise libvirtError('virDomainManagedSave() failed')
libvirt.libvirtError: Requested operation is not valid: cannot migrate domain: non-migratable device: 0000:00:02.6:00.0/vhost-user-fs
Steps to reproduce (using vmm)
- Confirmed save works with no shared filesystem enabled
- Enabled filesystem share using the XML config below for mount_tag (as noted in 'Sharing files with Virtiofs')
- Confirm mount is enabled and accessible through virtualised environment
- Attempt to save, but get the stack trace listed above.
Additional information
vmm filesystem mount_tag XML config:
<filesystem type="mount" accessmode="passthrough">
<driver type="virtiofs"/>
<binary path="/usr/libexec/virtiofsd"/>
<source dir="/home/user/vmshares/ubuntu-vm"/>
<target dir="mount_tag"/>
<alias name="fs0"/>
<address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
</filesystem>
Same behaviour occurred for a virtualised Fedora 37 instance.
Not sure if specifically a libvirt or QEMU issue. Also not listed in 'Sharing files with Virtiofs' page that not supported, but could be somewhere else to be fair...