[Pkg-xen-devel] Bug#687319: xcp-storage-managers: CDROM VDIs don't hotplug in guests because ISO SRs are misconfigured

Mike McClurg mike.mcclurg at citrix.com
Tue Sep 11 17:01:54 UTC 2012


Package: xcp-storage-managers
Version: 0.1.1-2ubuntu1
Severity: normal

This bug prevents CDROM VDIs from being hotplugged into guest
VMs. The issue is that the NFS ISO SR configures the ISO VDIs to
be 'file' types, which it should configure them to by 'phy'
types. This breaks on Debian's Xen because the Debian hotplug
scripts are more robuse than the ones on XenServer, and fail
because the VDI type is set improperly.

A debdiff is attached.



-- System Information:
Debian Release: wheezy/sid
  APT prefers precise-updates
  APT policy: (500, 'precise-updates'), (500, 'precise-security'), (500,
'precise'), (100, 'precise-backports')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-30-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages xcp-storage-managers depends on:
ii  blktap-utils    2.0.90-1
ii  libc6           2.15-0ubuntu10
ii  libxenstore3.0  4.1.2-2ubuntu2.2
ii  python          2.7.3-0ubuntu2
ii  python2.7       2.7.3-0ubuntu3.1
ii  uuid-runtime    2.20.1-1ubuntu3

Versions of packages xcp-storage-managers recommends:
ii  lvm2        2.02.66-4ubuntu7.1
ii  nfs-common  1:1.2.5-3ubuntu3

xcp-storage-managers suggests no packages.

-- no debconf information
-------------- next part --------------
diff -Nru xcp-storage-managers-0.1.1/debian/changelog xcp-storage-managers-0.1.1/debian/changelog
--- xcp-storage-managers-0.1.1/debian/changelog	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/changelog	2012-09-04 11:15:29.000000000 +0100
@@ -1,3 +1,9 @@
+xcp-storage-managers (0.1.1-3) unstable; urgency=low
+
+  * Fix CDROM guest hotplug bug (LP: #1045739)
+
+ -- Mike McClurg <mike.mcclurg at citrix.com>  Tue, 04 Sep 2012 11:03:11 +0100
+
 xcp-storage-managers (0.1.1-2) unstable; urgency=low
 
   * New FHS compliant layout
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0002-lvm2-path.patch xcp-storage-managers-0.1.1/debian/patches/0002-lvm2-path.patch
--- xcp-storage-managers-0.1.1/debian/patches/0002-lvm2-path.patch	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/0002-lvm2-path.patch	2012-09-04 11:15:29.000000000 +0100
@@ -4,7 +4,7 @@
 
 ---
  drivers/lvutil.py |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/lvutil.py b/drivers/lvutil.py
 index e9bf30a..a6c9914 100755
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0003-fpic-on-xslib.patch xcp-storage-managers-0.1.1/debian/patches/0003-fpic-on-xslib.patch
--- xcp-storage-managers-0.1.1/debian/patches/0003-fpic-on-xslib.patch	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/0003-fpic-on-xslib.patch	2012-09-04 11:15:29.000000000 +0100
@@ -4,7 +4,7 @@
 
 ---
  snapwatchd/Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/snapwatchd/Makefile b/snapwatchd/Makefile
 index 98cb1a9..addcbfb 100644
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0004-remove-xencert.patch xcp-storage-managers-0.1.1/debian/patches/0004-remove-xencert.patch
--- xcp-storage-managers-0.1.1/debian/patches/0004-remove-xencert.patch	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/0004-remove-xencert.patch	2012-09-04 11:15:29.000000000 +0100
@@ -4,7 +4,7 @@
 
 ---
  Makefile |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
+ 1 file changed, 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
 index a42b056..a1ff8c5 100644
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0005-vhd-util-path.patch xcp-storage-managers-0.1.1/debian/patches/0005-vhd-util-path.patch
--- xcp-storage-managers-0.1.1/debian/patches/0005-vhd-util-path.patch	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/0005-vhd-util-path.patch	2012-09-04 11:15:29.000000000 +0100
@@ -4,7 +4,7 @@
 
 ---
  drivers/vhdutil.py |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/vhdutil.py b/drivers/vhdutil.py
 index 10b6994..6ddcd32 100644
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0006-fix-local-device-change.patch xcp-storage-managers-0.1.1/debian/patches/0006-fix-local-device-change.patch
--- xcp-storage-managers-0.1.1/debian/patches/0006-fix-local-device-change.patch	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/0006-fix-local-device-change.patch	2012-09-04 11:15:29.000000000 +0100
@@ -6,7 +6,7 @@
 # Parent 48aa86a502ee5df1519d3ea42528c77d8fcf9ff6
 ---
  scripts/local-device-change |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/scripts/local-device-change b/scripts/local-device-change
 index 57fec20..2929bf1 100755
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0008-remove-primary-disk-dependency.patch xcp-storage-managers-0.1.1/debian/patches/0008-remove-primary-disk-dependency.patch
--- xcp-storage-managers-0.1.1/debian/patches/0008-remove-primary-disk-dependency.patch	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/0008-remove-primary-disk-dependency.patch	2012-09-04 11:15:29.000000000 +0100
@@ -4,7 +4,7 @@
 
 ---
  drivers/util.py |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/util.py b/drivers/util.py
 index 54b99ac..bf1f8ab 100644
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0009-disable-block-SRs.patch xcp-storage-managers-0.1.1/debian/patches/0009-disable-block-SRs.patch
--- xcp-storage-managers-0.1.1/debian/patches/0009-disable-block-SRs.patch	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/0009-disable-block-SRs.patch	2012-09-04 11:15:29.000000000 +0100
@@ -8,12 +8,14 @@
 
 Signed-off-by: Mike McClurg <mike.mcclurg at citrix.com>
 ---
- Makefile |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
+ Makefile |   12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
 
+diff --git a/Makefile b/Makefile
+index fbfbbf5..4255016 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -12,6 +12,8 @@
+@@ -12,6 +12,8 @@ SM_DRIVERS += LVHDoISCSI
  SM_DRIVERS += LVHDoHBA
  SM_DRIVERS += SHM
  
@@ -22,7 +24,7 @@
  SM_LIBS := SR
  SM_LIBS += SRCommand
  SM_LIBS += VDI
-@@ -93,13 +95,13 @@
+@@ -93,13 +95,13 @@ install:
  	for i in $(SM_XML); do \
  	  install -m 755 drivers/$$i.xml \
  	    $(SM_STAGING)$(SM_DEST); done
@@ -41,3 +43,4 @@
  	#ln -sf $(SM_DEST)mpathutil.py $(SM_STAGING)/sbin/mpathutil
  	install -m 755 drivers/02-vhdcleanup $(SM_STAGING)$(MASTER_SCRIPT_DEST)
  	install -m 755 drivers/lvhd-thin $(SM_STAGING)$(PLUGIN_SCRIPT_DEST)
+-- 
diff -Nru xcp-storage-managers-0.1.1/debian/patches/0010-Fix-guest-CDROM-hotplug.patch xcp-storage-managers-0.1.1/debian/patches/0010-Fix-guest-CDROM-hotplug.patch
--- xcp-storage-managers-0.1.1/debian/patches/0010-Fix-guest-CDROM-hotplug.patch	1970-01-01 01:00:00.000000000 +0100
+++ xcp-storage-managers-0.1.1/debian/patches/0010-Fix-guest-CDROM-hotplug.patch	2012-09-04 11:15:29.000000000 +0100
@@ -0,0 +1,30 @@
+From: Mike McClurg <mike.mcclurg at citrix.com>
+Date: Tue, 4 Sep 2012 10:57:09 +0100
+Subject: Fix guest CDROM hotplug
+
+The ISOSR driver erroneously tagged all ISO VDIs as 'file' types when it should
+have tagged them as 'phy' types. The XenServer hotplug scripts are quite
+simple, and don't distinguish between these two types. The upstream Xen 4.1
+hotplug scripts, however, are quite robust, and would refuse to plug the CDROM
+devices into the guest because the backend paths that contained the CDROM
+images were block devices and not files.
+
+Signed-off-by: Mike McClurg <mike.mcclurg at citrix.com>
+---
+ drivers/ISOSR.py |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/ISOSR.py b/drivers/ISOSR.py
+index 35601ed..c1e3004 100755
+--- a/drivers/ISOSR.py
++++ b/drivers/ISOSR.py
+@@ -191,7 +191,7 @@ class ISOSR(SR.SR):
+             self.path = self.mountpoint
+ 
+         # Some info we need:
+-        self.sr_vditype = 'file'
++        self.sr_vditype = 'phy'
+         self.credentials = None
+  
+     def attach(self, sr_uuid):
+-- 
diff -Nru xcp-storage-managers-0.1.1/debian/patches/series xcp-storage-managers-0.1.1/debian/patches/series
--- xcp-storage-managers-0.1.1/debian/patches/series	2011-12-17 16:47:38.000000000 +0000
+++ xcp-storage-managers-0.1.1/debian/patches/series	2012-09-04 11:15:29.000000000 +0100
@@ -7,3 +7,4 @@
 0007-fix-makefile.patch
 0008-remove-primary-disk-dependency.patch
 0009-disable-block-SRs.patch
+0010-Fix-guest-CDROM-hotplug.patch
Binary files /tmp/TeCi_EcImJ/xcp-storage-managers-0.1.1/XenCert/diskdatatest and /tmp/rnkmYxDgKR/xcp-storage-managers-0.1.1/XenCert/diskdatatest differ


More information about the Pkg-xen-devel mailing list