On Monday, December 10, 2018 at 5:52:19 PM UTC-8, Satyajit Deshmukh wrote:
>
> 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
>
>
>
>
> Based on the code, I'm not sure it should always be considered an error 
when no block device is found, so I'm not comfortable changing the code to 
assume this.

I believe the path created depends on the target. For example, for a tape 
device target, there will be no block device.

-- 
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.

Reply via email to