Bug 832302 - libvirt shouldn't delete an existing unregistered volume in vol-create
libvirt shouldn't delete an existing unregistered volume in vol-create
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt (Show other bugs)
6.3
Unspecified Unspecified
medium Severity high
: rc
: ---
Assigned To: Osier Yang
Virtualization Bugs
:
Depends On:
Blocks: 888457
  Show dependency treegraph
 
Reported: 2012-06-15 01:49 EDT by yuping zhang
Modified: 2013-03-04 00:18 EST (History)
11 users (show)

See Also:
Fixed In Version: libvirt-0.10.2-12.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-02-21 02:17:38 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2013:0276 normal SHIPPED_LIVE Moderate: libvirt security, bug fix, and enhancement update 2013-02-20 16:18:26 EST

  None (edit)
Description yuping zhang 2012-06-15 01:49:23 EDT
Description of problem:
In default pool,there is a image which name is as same as remote guest 
image,and then run virt-v2v command,v2v will exit,but it will delete the 
local image.

Version-Release number of selected component (if applicable):
virt-v2v-0.8.7-6.el6.x86_64
libvirt-0.9.10-21.el6.x86_64
qemu-kvm-0.12.1.2-2.295.el6.x86_64


How reproducible:
always

Steps to Reproduce:
1.Create a image in local host default pool.
# qemu-img create /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img 1G
Formatting '/var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img', fmt=raw 
size=1073741824
# ll /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img
-rw-r--r--. 1 root root 1073741824 Jun 15 12:57 
/var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img

2.Convert a guest which image name is xen-pv-rhel5.8-x86_64.img
# virt-v2v -ic xen+ssh://10.66.72.123/ -os default xen-pv-rhel5.8-x86_64
root@10.66.72.123's password:
virt-v2v: Failed to create storage volume: libvirt error code: 38, 
message: cannot create path 
'/var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img': File exists

# echo $?
2

3.# ll /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img


Actual results:
The image was removed.
#ll /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img
ls: cannot access /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img: No 
such file or directory

Expected results:
The image should should not be removed.

Additional info:
Comment 1 Matthew Booth 2012-12-04 06:43:02 EST
This is a libvirt bug. I've updated the title and reassigned it accordingly. Here's a simple reproducer:

# cat /tmp/disk.xml 
<volume>
  <name>unregistered.img</name>
  <capacity unit='bytes'>0</capacity>
  <allocation unit='bytes'>0</allocation>
  <target>
    <format type='raw'/>
  </target>
</volume>

# touch /var/lib/libvirt/images/unregistered.img

# virsh vol-create default /tmp/disk.xml 
error: Failed to create vol from /tmp/disk.xml
error: cannot create path '/var/lib/libvirt/images/unregistered.img': File exists

# ls /var/lib/libvirt/images/unregistered.img
ls: cannot access /var/lib/libvirt/images/unregistered.img: No such file or directory

Note that libvirt has deleted the existing disk image. It should instead have not deleted it and indicated that the volume already exists, as it would have done if the volume was already registered in the pool.
Comment 2 Osier Yang 2012-12-05 12:12:11 EST
patch committed into upstream.

https://www.redhat.com/archives/libvir-list/2012-December/msg00159.html
Comment 5 zhe peng 2012-12-13 02:28:13 EST
I can reproduce this with pkg:
libvirt-0.10.2-7.el6.x86_64
virt-v2v-0.8.9-2.el6.x86_64

verify with:
libvirt-0.10.2-12.el6.x86_64
virt-v2v-0.8.9-2.el6.x86_64

step:
1.Create a image in local host default pool.
# qemu-img create /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img 1G
Formatting '/var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img', fmt=raw 
size=1073741824
# ll /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img
-rw-r--r--. 1 root root 1073741824 Dec 13 02:16 /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img

2.Convert a guest which image name is xen-pv-rhel5.8-x86_64.img
# virt-v2v -ic xen+ssh://10.66.72.23/ -os default xen-pv-rhel5.9-x86_64
root@10.66.72.123's password:
virt-v2v: Failed to create storage volume: libvirt error code: 55, 
message: Requested operation is not valid: volume target path '/var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img' already exists

# echo $?
2

3.# ll /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img 
-rw-r--r--. 1 root root 1073741824 Dec 13 02:16 /var/lib/libvirt/images/xen-pv-rhel5.8-x86_64.img

the image not be removed. verification passed.
Comment 6 errata-xmlrpc 2013-02-21 02:17:38 EST
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.

http://rhn.redhat.com/errata/RHSA-2013-0276.html

Note You need to log in before you can comment on or make changes to this bug.