Bug 801036

Summary: libvirt with QEmu does not support disk filenames with comma
Product: [Community] Virtualization Tools Reporter: Crístian Viana <vianac>
Component: libvirtAssignee: Eric Blake <eblake>
Status: CLOSED UPSTREAM QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: bugproxy, crobinso, dallan, eblake, xen-maint
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 801970 (view as bug list) Environment:
Last Closed: 2013-01-24 21:18:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 801970    

Description Crístian Viana 2012-03-07 14:46:00 UTC
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.

Comment 1 Dave Allan 2012-03-07 16:28:44 UTC
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?

Comment 2 Crístian Viana 2012-03-07 17:22:11 UTC
Yes, I'll work on a patch for it.

Comment 3 Dave Allan 2012-03-07 17:55:58 UTC
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 4 IBM Bug Proxy 2012-03-07 19:31:04 UTC
------- 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---

Comment 5 Eric Blake 2012-03-10 00:43:19 UTC
Upstream patch awaiting review: https://www.redhat.com/archives/libvir-list/2012-March/msg00420.html

Comment 6 IBM Bug Proxy 2013-01-24 16:40:38 UTC
Closing this as it's been verified as fixed in RHEL 6.3.

Comment 7 Cole Robinson 2013-01-24 21:18:49 UTC
If it's fixed in RHEL it's fixed upstream, so closing.