[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] bug in scsiutil.py + patch

Yea i've seen this before.

An alternative is for udev to create symlinks that scsiutil.py can consume for this particular device.

On 11 May 2011 02:21, Alexandre Bezroutchko <abb@xxxxxxxxxxxx> wrote:

There appears to be a bug in iSCSI helper script in Xenserver 5.6 FP1. I had problems configuring iSCSI SR on my XenServer -- it kept complaining about SR backend failure when I tried to enumerate LUNs from XenCenter. The following errors appeared in /var/log/xensource.log:

[20110511T00:36:48.881Z|debug|bruxenprd2|1357|sm_exec D:60211d883f03|dispatcher] Raised at hashtbl.ml:93.19-28 -> debug.ml:100.36-65
[20110511T00:36:48.881Z|debug|bruxenprd2|1357|sm_exec D:60211d883f03|backtrace] Raised at hashtbl.ml:93.19-28 -> debug.ml:100.36-65
[20110511T00:36:48.881Z|debug|bruxenprd2|1357|sm_exec D:60211d883f03|xapi] Raised at server_helpers.ml:92.14-15 -> pervasiveext.ml:22.2-9
[20110511T00:36:48.881Z|debug|bruxenprd2|1357|sm_exec D:60211d883f03|xapi] Raised at pervasiveext.ml:26.22-25 -> pervasiveext.ml:22.2-9
[20110511T00:36:48.881Z|debug|bruxenprd2|1357|Async.SR.create R:0cf1e544324a|backtrace] Raised at xapi_sr.ml:310.10-11 -> rbac.ml:230.16-23
[20110511T00:36:48.882Z|debug|bruxenprd2|1357|Async.SR.create R:0cf1e544324a|backtrace] Raised at hashtbl.ml:93.19-28 -> debug.ml:100.36-65
[20110511T00:36:48.882Z|debug|bruxenprd2|1357|Async.SR.create R:0cf1e544324a|dispatcher] Server_helpers.exec exception_handler: Got exception SR_BACKEND_FAILURE: [ non-zero exit; ; Traceback (most recent call last):
 File "/opt/xensource/sm/LVMoISCSISR", line 378, in ?
 File "/opt/xensource/sm/SRCommand.py", line 244, in run
   sr = driver(cmd, cmd.sr_uuid)
 File "/opt/xensource/sm/SR.py", line 128, in __init__
 File "/opt/xensource/sm/LVMoISCSISR", line 75, in load
   iscsi = driver(self.original_srcmd, sr_uuid)
 File "/opt/xensource/sm/SR.py", line 128, in __init__
 File "/opt/xensource/sm/util.py", line 1155, in transform
   return func(inst, *args, **kwargs)
 File "/opt/xensource/sm/ISCSISR.py", line 167, in load
 File "/opt/xensource/sm/ISCSISR.py", line 170, in _initPaths
 File "/opt/xensource/sm/ISCSISR.py", line 236, in _init_adapters
   self.devs = scsiutil.cacheSCSIidentifiers()
 File "/opt/xensource/sm/scsiutil.py", line 129, in cacheSCSIidentifiers
   line = "NONE %s %s %s %s 0 %s" % \
IndexError: list index out of range

It turned out that scsiutil.py module fails to parse some SCSI device names in the system. On my server I have:

[root@bruxenprd2 log]# ls -l /dev/disk/by-scsibus/
total 0
lrwxrwxrwx 1 root root  9 May 11 02:53 14f504e46494c450046564a6477552d627939582d436b7431-12:0:0:0 -> ../../sdc
drwxr-xr-x 2 root root 60 May 11 02:32 1JMicron_USB_to_ATA
lrwxrwxrwx 1 root root  9 May 11 02:32 36782bcb028c58b00154215b0077d0c9b-0:2:0:0 -> ../../sda

and "1JMicron_USB_to_ATA" entry breaks things. The following patch has helped me:

diff -u /opt/xensource/sm/scsiutil.py- /opt/xensource/sm/scsiutil.py
--- /opt/xensource/sm/scsiutil.py-    2011-05-11 02:49:17.000000000 +0200
+++ /opt/xensource/sm/scsiutil.py    2011-05-11 02:51:54.000000000 +0200
@@ -126,6 +126,8 @@
    for node in glob.glob(SYS_PATH):
        dev = os.path.realpath(node)
        HBTL = os.path.basename(node).split("-")[-1].split(":")
+        if len(HBTL) != 4:
+        continue
        line = "NONE %s %s %s %s 0 %s" % \
        ids = line.split()

It works ok, but I wonder if this is a correct solution.

Best regards,

Xen-users mailing list

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.