Hello,
We are fairly frequently now running into this. Looks like an issue with
the sysfs interface.
iscsi_sysfs_get_blockdev_from_lun() sometimes does not find the SCSI block
device (say /dev/sdd) for a logged in iSCSI target.
Thus, iscsiadm -m session -P0 does not print the SCSI device block path
(say /dev/sdd)
>From code walk-through, I can see there are 2 places, where it can happen.
Sharing that here.
diff -uNr open-iscsi-2.0.874/usr/iscsi_sysfs.c
open-iscsi-2.0.874_2/usr/iscsi_sysfs.c
--- open-iscsi-2.0.874/usr/iscsi_sysfs.c 2018-11-19 19:25:38.935602682
+0000
+++ open-iscsi-2.0.874_2/usr/iscsi_sysfs.c 2018-11-19 19:43:08.214013706
+0000
@@ -1557,19 +1557,24 @@
snprintf(id, sizeof(id), "%d:0:%d:%d", host_no, target, lun);
if (!sysfs_lookup_devpath_by_subsys_id(devpath, sizeof(devpath),
SCSI_SUBSYS, id)) {
- log_debug(3, "Could not lookup devpath for %s %s",
+ log_error("Could not lookup devpath for %s %s",
SCSI_SUBSYS, id);
return NULL;
}
+ log_debug(0, "devpath is %s for id %s", devpath, id);
sysfs_len = strlcpy(path_full, sysfs_path, sizeof(path_full));
if (sysfs_len >= sizeof(path_full))
sysfs_len = sizeof(path_full) - 1;
strlcat(path_full, devpath, sizeof(path_full));
+ log_debug(0, "path_full is %s", path_full);
dirfd = opendir(path_full);
- if (!dirfd)
+ if (!dirfd) {
+ log_error("Could not open sysfs dir %s",
+ path_full);
return NULL;
+ }
while ((dent = readdir(dirfd))) {
if (!strcmp(dent->d_name, ".") || !strcmp(dent->d_name, ".."))
Are there such known issues with the sysfs where device paths are not
found, for logged in targets?
Any pointers/suggestions on debugging this greatly appreciated.
We too are trying to root-cause and would share our finding here.
Thanks,
Satyajit
--
You received this message because you are subscribed to the Google Groups
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.