external snapshot create error

Dear all, I have been creating external snapshots of my KVM/QEMU VMs for more than a year on a host machine that runs Manjaro Linux. The current version of libvirt I am using is 1:7.1.0-3. I just noticed that the script I am using for this purpose has been failing. More specifically the command below returns with the error message indicated underneath the command: sudo virsh snapshot-create-as --no-metadata --domain myVM myVM-state --diskspec hda,file=overlay.qcow2 --disk-only --atomic error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domainsnapshot.rng Extra element disks in interleave Element domainsnapshot failed to validate content I also tried different versions of the command above with similar results, such as: sudo virsh snapshot-create-as mvVM --no-metadata myVM-state --diskspec hda,snapshot=external,file=overlay.qcow2 --disk-only --atomic Any pointers will be greatly appreciated! Hakan Duran

On Mon, Apr 19, 2021 at 20:19:31 -0500, Eyüp Hakan Duran wrote:
Dear all,
I have been creating external snapshots of my KVM/QEMU VMs for more than a year on a host machine that runs Manjaro Linux. The current version of libvirt I am using is 1:7.1.0-3. I just noticed that the script I am using for this purpose has been failing. More specifically the command below returns with the error message indicated underneath the command:
sudo virsh snapshot-create-as --no-metadata --domain myVM myVM-state --diskspec hda,file=overlay.qcow2 --disk-only --atomic error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domainsnapshot.rng
The problem is that file=overlay.qcow2 points to a relative path (not starting with a leading '/'). Libvirt enforces that the path must be a full path.
Extra element disks in interleave Element domainsnapshot failed to validate content
I've recently pushed a commit which removes the XML validation in this case as it's counter-productive and the XML parser provides a more understandable error: https://gitlab.com/libvirt/libvirt/-/commit/f1c9fed2ca8f2509495f46b355dab019... (note that this commit will be in the upcomming libvirt-7.3 release)
I also tried different versions of the command above with similar results, such as: sudo virsh snapshot-create-as mvVM --no-metadata myVM-state --diskspec hda,snapshot=external,file=overlay.qcow2 --disk-only --atomic
Any pointers will be greatly appreciated!
Hakan Duran

Hi Peter, On 21/04/20 09:14AM, Peter Krempa wrote:
The problem is that file=overlay.qcow2 points to a relative path (not starting with a leading '/'). Libvirt enforces that the path must be a full path.
Thank you! I confirm that it is working following your correction.
I've recently pushed a commit which removes the XML validation in this case as it's counter-productive and the XML parser provides a more understandable error:
https://gitlab.com/libvirt/libvirt/-/commit/f1c9fed2ca8f2509495f46b355dab019...
(note that this commit will be in the upcomming libvirt-7.3 release)
Thank you for the great software and all you do! Hakan
participants (2)
-
Eyüp Hakan Duran
-
Peter Krempa