virt-manager/5a11cf07-virt-manager-generates-invalid-guest-XML.patch
Charles Arnold 287c87ccd9 - bsc#1022173 - virt-manager: unknown input device type
'virtio1.0-input'
  1d2cd306-Fix-incorrect-usage-of-virtio-input.patch
- bsc#1005848 - KVM: guest can not be started on top of SLES12SP1
  KVM host ppc64
  5a11cf07-virt-manager-generates-invalid-guest-XML.patch
- Upstream bug fixes
  617b9271-dont-return-virtio1.0-net-as-valid-device-name.patch
  7962672c-fix-error-checking-extra_args.patch
  b4858842-fix-bad-version-check-regression.patch
  f07a3021-fix-wait-to-behave-like-noautoconsole.patch

- bsc#1005861 - virt-manager create new machine dialog box too
  small to display system type
  virtinst-expand-combobox.patch
- fate#314135: Support PVSCSI on XEN and VirtioSCSI on KVM -
- fate#313076: HBA passthrough for kvm

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=338
2017-01-27 15:42:58 +00:00

52 lines
2.4 KiB
Diff

Subject: virt-manager generates invalid guest XML
From: Seeteena Thoufeek s1seetee@linux.vnet.ibm.com Mon Dec 12 17:48:50 2016 +0530
Date: Mon Dec 12 21:12:09 2016 -0500:
Git: 5a11cf0782998a36eef42718231bcb4c2de8ebba
The virt-manager application generates invalid guest XML when a
spapr-vio SCSI model controller is changed to a virtio-scsi model controller.
1. Create a guest
2. Add an spapr-vio controller to the guest via this gui path:
->Add Hardware
->Controller
->Type SCSI
->Model Hypervisor default
At this point, there will be a valid spapr-vio SCSI controller defined:
<controller type='scsi' index='0'>
<address type='spapr-vio' reg='0x2000'/>
</controller>
3.Now modify the above SCSI controller using this gui path:
->Choose "Controller sPAPR SCSI" on left pane
->Choose "VirtIO SCSI" for the Model on the right pane
->Apply
At this point, there will be a SCSI controller definition which is invalid due to an incorrect address type:
~# virsh dumpxml dotg2|grep -A2 -i scsi
<controller type='scsi' index='0' model='virtio-scsi'>
<address type='spapr-vio' reg='0x2000'/>
</controller>
Any attempt to start the guest will throw this error:
error: Failed to start domain dotg2
error: internal error: process exited while connecting to monitor: 2016-12-02T17:45:12.989165Z qemu-system-ppc64le: -device virtio-scsi-pci,id=scsi0,reg=0x2000: Property '.reg' not found
virt-manager fails to realize that the address type needs to be changed to a PCI address for a virtio-scsi controller.
If you change the model, you are supposed to leave the address field empty, so that libvirt sets it correctly. Or change the address field also appropriately.
Note that this bug can be reproduced entirely within virt-manager. No manual editing of guest XML is being done here. So, fix is to make virt-manager delete the address field when the SCSI controller model is changed, allowing libvirt to automatically assign a new address with the correct type.
Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com>
Index: virt-manager-1.4.0/virtManager/domain.py
===================================================================
--- virt-manager-1.4.0.orig/virtManager/domain.py
+++ virt-manager-1.4.0/virtManager/domain.py
@@ -949,6 +949,7 @@ class vmmDomain(vmmLibvirtObject):
else:
editdev.model = model
+ editdev.address.clear()
self.hotplug(device=editdev)
if model != _SENTINEL: