[Pkg-xen-devel] Bug#691805: xcp-storage-managers: Wrong path in iSCSI storage driver script

Leonardo Bruno Lopes leobruno at gmail.com
Tue Oct 30 00:05:47 UTC 2012


Package: xcp-storage-managers
Version: 0.1.1-2
Severity: important

Dear Maintainer,

I can not create an iSCSI storage resource using the following command:

xe sr-create host-uuid=<my-host-uuid> content-type=user name-label="LVM over iSCSI SR"> shared=true device-config:target=192.168.10.100 device-config:targetIQN=<here-target-iqn> device-config:SCSIid=<my-scsi-id> type=lvhdoiscsi

(Note that I created a symlink 
  ln -s /usr/lib/xcp/sm/LVHDoISCSISR.py /usr/lib/xcp/sm/LVHDoISCSISR
so the driver 'lvhdoiscsi' could be recognised.)

This command should print the UUID of the new SR in STDOUT if it has created the SR successfully, but It failed with these messages, among others:

There was an SR backend failure.
status: non-zero exit
stdout: 
stderr: Traceback (most recent call last):
  File "/usr/lib/xcp/sm/LVHDoISCSISR", line 384, in <module>
    SRCommand.run(LVHDoISCSISR, DRIVER_INFO)
  File "/usr/lib/xcp/sm/SRCommand.py", line 261, in run
    sr = driver(cmd, cmd.sr_uuid)
  File "/usr/lib/xcp/sm/SR.py", line 136, in __init__
    self.load(sr_uuid)
  File "/usr/lib/xcp/sm/LVHDoISCSISR", line 153, in load
    self._LUNprint(sr_uuid)
  File "/usr/lib/xcp/sm/LVHDoISCSISR", line 183, in _LUNprint
    self.iscsi.attach(sr_uuid)
  File "/usr/lib/xcp/sm/ISCSISR.py", line 274, in attach
    iscsilib.ensure_daemon_running_ok(self.localIQN)
  File "/usr/lib/xcp/sm/iscsilib.py", line 315, in ensure_daemon_running_ok
    if not is_iscsi_daemon_running():
File "/usr/lib/xcp/sm/iscsilib.py", line 198, in is_iscsi_daemon_running
    (rc,stdout,stderr) = util.doexec(cmd)
  File "/usr/lib/xcp/sm/util.py", line 129, in doexec
    proc = subprocess.Popen(args,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,close_fds=True)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory


So I figured out that the SR creator script was trying to execute some binary using a wrongpath.

Comparing the /usr/lib/xcp/sm/iscsilib.py script from the xcp-storage-managers Debian package with its equivalent script shipped with XCP CentOS-based distro I could confirm that they are the same.

What I did was to alter line 198 of the /usr/lib/xcp/sm/iscsilib.py file from 
  cmd = ["/sbin/pidof", "-s", "/sbin/iscsid"]
to
  cmd = ["/bin/pidof", "-s", "/usr/sbin/iscsid"]
to reflect the actual path of the 'iscsid' binary in Debian.

However, I think it's more 'debianistic' to get this path each time the script runs (something like 'which iscsid') or make it configurable by some variable or config file.

Thanks in advance!


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.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.13-35
ii  libxenstore3.0  4.1.3-2
ii  python          2.7.3~rc2-1
ii  python2.7       2.7.3~rc2-2.1
ii  uuid-runtime    2.20.1-5.2

Versions of packages xcp-storage-managers recommends:
ii  lvm2        2.02.95-4
ii  nfs-common  1:1.2.6-3

xcp-storage-managers suggests no packages.

-- no debconf information



More information about the Pkg-xen-devel mailing list