There's no way to specify a disk filename with comma on libvirt with QEmu. QEmu supports filenames with comma by using a double comma (e.g. "file=virtual,,disk.img" is parsed by QEmu as the file virtual,disk.img). However this does not happen with libvirt. If you specify <source file="virtual,disk.img" />, libvirt will pass the exact name to QEmu, which is an error to QEmu; if you specify <source file="virtual,,disk.img" />, libvirt interprets as a literal name and reports a "no such file" error even before talking to QEmu. Tested on libvirt-0.8.7-18.el6_1.4.x86_64. How reproducible: Always. Steps to Reproduce: 1. Create an image file with a comma in the name (e.g. virtual,disk.img). 2. Create a QEmu VM with libvirt specifying that file as the disk. 3. Start the VM. Actual results: The file cannot be found. Expected results: The file should be found because it exists and QEmu supports that.
TBH, this capability isn't something that I've seen a lot of people asking for, but if you need it and are willing to put together a patch, I doubt it would be controversial upstream, and the code probably isn't too complex. Is that something that you'd be willing to take on?
Yes, I'll work on a patch for it.
Great, thank you. If you haven't already, have a look at http://libvirt.org/hacking.html as there is some good advice there that can potentially save you a lot of time/work.
------- Comment From sglass.com 2012-03-07 14:21 EDT------- ---Problem Description--- QEmu supports filenames with comma by using a double comma (e.g. "file=virtual,,disk.img" is parsed by QEmu as the file virtual,disk.img). However this does not happen with libvirt. If you specify <source file="virtual,disk.img" />, libvirt will pass the exact name to QEmu, which is an error to QEmu; if you specify <source file="virtual,,disk.img" />, libvirt interprets as a literal name and reports a "no such file" error even before talking to QEmu. Contact Information = Anthony Liguori ---uname output--- n/a Machine Type = n/a ---Debugger--- A debugger is not configured ---KVM Component Data---
Upstream patch awaiting review: https://www.redhat.com/archives/libvir-list/2012-March/msg00420.html
Closing this as it's been verified as fixed in RHEL 6.3.
If it's fixed in RHEL it's fixed upstream, so closing.