Bug 611823

Summary: Storage driver should prohibit pools with duplicate underlying storage
Product: Red Hat Enterprise Linux 6 Reporter: Daniel Berrangé <berrange>
Component: libvirtAssignee: Daniel Veillard <veillard>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: ajia, berrange, dallan, dyuan, eblake, jyang, mzhan, rwu, virt-maint, xen-maint, zpeng
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.9.9-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 547431 Environment:
Last Closed: 2012-06-20 06:23:39 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:

Description Daniel Berrangé 2010-07-06 15:09:19 UTC
+++ This bug was initially created as a clone of Bug #547431 +++

Description of problem:
libvirt allows a user to create two pools with exactly the same underlying storage.  The simplest example is two directory pools that point to the same directory, but iSCSI and other pool types behave similarly.  The result is that libvirt can have a pool with an inconsistent view of its volumes if the other pool has been used to issue the volume modification operation.  For example, if two directory pools point to the same directory, and one pool is used to create a volume, the other pool will remain unaware of the new volume until it is refreshed.

Version-Release number of selected component (if applicable):
libvirt-0.6.3-24

How reproducible:
100%

Steps to Reproduce:
1. Create a directory pool pointing to a given directory
2. Create a second pool pointing to the same directory
  
Actual results:
Two pools will be created.

Expected results:
The second pool should be rejected.

Additional info:

Comment 1 Suzanne Logcher 2011-03-28 21:10:12 UTC
Since RHEL 6.1 External Beta has begun, and this bug remains 
unresolved, it has been rejected as it is not proposed as an 
exception or blocker.

Red Hat invites you to ask your support representative to 
propose this request, if appropriate and relevant, in the 
next release of Red Hat Enterprise Linux.

Comment 2 Osier Yang 2011-09-22 05:19:39 UTC
commit 5a1f2728754a7b7bea4efd245d7171ab6286d681
Author: Lei Li <lilei.ibm.com>
Date:   Mon Sep 5 15:52:03 2011 +0800

    Check for source conflicts in storage pools
    
    Fix bug #611823 storage driver should prohibit pools with duplicate
    underlying storage.
    
    Add internal API virStoragePoolSourceFindDuplicate() to do uniqueness
    check based on source location infomation for pool type.
    
    * AUTHORS: add Lei Li

Patch is in upstream.

Comment 6 zhe peng 2012-01-10 07:50:30 UTC
I can reproduce this bug with libvirt-0.8.7-18.el6_1.3.x86_64
can create two directory pools point to the same directory.

verify on libvirt-0.9.9-1.el6.x86_64

step:
# virsh pool-list --all
Name                 State      Autostart 
-----------------------------------------
default              active     yes       
dir                  active     yes       
testiqn              active     yes 

# virsh pool-dumpxml dir > dir.xml
# vim dir.xml
change pool name and UUID in xml file,but don't change path

# virsh pool-define dir.xml
error: Failed to define pool from dir.xml
error: operation failed: Storage source conflict with pool: 'dir'

The second pool is rejected.

verification passed.
move to verified.

Comment 8 errata-xmlrpc 2012-06-20 06:23:39 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.

http://rhn.redhat.com/errata/RHSA-2012-0748.html