Bug 1128942

Summary: libguests tools failing on images containing a colon in the path
Product: Red Hat Enterprise Linux 6 Reporter: Federico Simoncelli <fsimonce>
Component: libguestfsAssignee: Pino Toscano <ptoscano>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.6CC: huzhan, jherrman, leiwang, mbooth, ptoscano, rjones, wshi
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libguestfs-1.20.11-14.el6 Doc Type: Bug Fix
Doc Text:
The libguestfs tools could not use disk images that contained the colon (":") symbol in their path. With this update, path handling in libguestfs and in virt-sparsify has been improved, and such images can now be used as expected.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-07-22 05:55:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Federico Simoncelli 2014-08-11 21:57:15 UTC
Description of problem:
Libguests tools are failing when used on images containing a colon in the path.

Version-Release number of selected component (if applicable):
libguestfs-1.20.11-10.el6

How reproducible:
100%

Steps to Reproduce:
# qemu-img create -f qcow2 /tmp/disk:1.qcow2 20G
Formatting '/tmp/disk:1.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536
# virt-sparsify /tmp/disk:1.qcow2 /tmp/disk:2.qcow2
virt-resize: error: input filename '/tmp/disk:1.qcow2' contains a colon 
(':'); qemu-img command line syntax prevents us from using such an 
image

Actual results:
The libguestfs operation fails.

Expected results:
The libguestfs operation should succeed.

Comment 2 Richard W.M. Jones 2014-08-12 07:49:56 UTC
This is needed for virt-sparsify support in oVirt / RHEV-M
and so is important to get in for RHEL 6.

Pino:

The commit which fixes this is likely to be
a95214b1985e694946e3426120a6fdc13a3f081f.

I'm dev-acking this, BUT we need to be really sure that it
does not break things.  It may be for example that the ancient
qemu or qemu-img in RHEL 6 does not support colons in paths, or
does support them but not in the way that is compatible with
a95214b198.

So please check not just that the right patch is applied but
that it actually works on RHEL 6.

Comment 3 Richard W.M. Jones 2014-08-12 07:53:25 UTC
Actually, also need commit(s?) which remove the check for :
in the path in virt-sparsify.

1.20 has this:

  (* Check filenames don't contain a colon (limitation of qemu-img). *)
  if contains_colon indisk then
    error (f_"input filename '%s' contains a colon (':'); qemu-img command line syntax prevents us from using such an image") indisk;

  if contains_colon outdisk then
    error (f_"output filename '%s' contains a colon (':'); qemu-img command line syntax prevents us from using such an image") outdisk;

This code has been removed upstream, but I cannot find which
commit that was.

And also need to check that virt-sparsify really works on
filenames containing ':' after this change.

Comment 4 Richard W.M. Jones 2014-08-13 13:25:08 UTC
This has now missed the ordinary path into RHEL 6.6 because
the external beta has been released.  We now require
rhel-6.6.0 == + and (blocker == + or exception == +)
OR we can push it to RHEL 6.7.

Comment 5 Lingfei Kong 2014-08-26 08:30:54 UTC
Can reproduce with libguestfs-1.20.11-10.el6
Steps to reproduce:
[host-1]# qemu-img create -f qcow2 /tmp/disk:1.qcow2 20G
Formatting '/tmp/disk:1.qcow2', fmt=qcow2 size=21474836480 encryption=off cluster_size=65536 
[host-1]#virt-sparsify /tmp/disk:1.qcow2 /tmp/disk:2.qcow2
virt-sparsify: error: input filename '/tmp/disk:1.qcow2' contains a 
colon (':'); qemu-img command line syntax prevents us from using such 
an image

virt-sparsify: If reporting bugs, run virt-sparsify with debugging 
enabled (-v) and include the complete output.

Comment 8 Hu Zhang 2015-03-10 10:07:30 UTC
Verified with the package version:
libguestfs-1.20.11-14.el6.x86_64

Verify steps:
1. Create a image with a colon in the name.
# qemu-img create /tmp/test:test.img 1G
2. Check the filesystems in the image.
# virt-filesystems -a  /tmp/test:test.img

No error returned. So verified.

Comment 10 errata-xmlrpc 2015-07-22 05:55:31 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-1444.html