Hi,
we have found an issue caused by 321a28c6 "libxl: set default disk format in device post-parse" (and maybe more changes I couldn't identify yet).

TL;DR: The auto-added driver section in xen changed and now causes issues.

An example to to trigger:
1. Create a  XEN xml with a disk device of type cdrom, but do not add a driver section, like.
    <disk type='file' device='cdrom'>
      <target dev='hdb' bus='ide'/>
      <readonly/>
    </disk>
2. on virsh define if that XML
2b. You could also "virsh edit" any working xml file, remove the <driver../> which will trigger the same
2c. You could also define via virt-manager as it does not explicitly specify the device section

What happens is that before the changes this auto-added a driver section like:
   <driver name='qemu' type='raw'/>
But now it does only add
   <driver type='raw'/>
Which fails to verify like:


Interestingly the same is not true for KVM, there the section is as it was in the past which made it more likely the post-parse step might be involved.

Also rather expected, if one adds a full <driver name='qemu' type='raw'/> in the XML libvirt doesn't have to provide (broken) defaults and things work as they should - yet from a user with formerly working XMLs or using virt-manager this is a regression.

I have beg your pardon I seem to not be experienced enough on this part of libvirt to provide a valid fix - I tried but nothing good came out so far. For now I reverted 321a28c6 which also affects a test later added by 4cd3f241. With those changes it will not add anything which lets us start Xen VMs for now, but it clearly isn't a solution.

I wanted to ask you if you could take a look into this?

--
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd