Bug 457530 - multipath conflicts with scsi_id and ignores multipath.conf
multipath conflicts with scsi_id and ignores multipath.conf
Status: CLOSED WONTFIX
Product: Fedora
Classification: Fedora
Component: device-mapper-multipath (Show other bugs)
9
i386 Linux
low Severity high
: ---
: ---
Assigned To: Ben Marzinski
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2008-08-01 07:46 EDT by Paulo Rodrigues
Modified: 2009-07-15 04:15 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-07-15 04:15:07 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
my multipath.conf (2.83 KB, text/plain)
2008-08-27 22:55 EDT, Zing
no flags Details
show config output (7.65 KB, text/plain)
2008-08-27 22:57 EDT, Zing
no flags Details

  None (edit)
Description Paulo Rodrigues 2008-08-01 07:46:01 EDT
Description of problem:

dm-multipath ignores defaults in /etc/multipath.conf, namely getuid_callout.

As you know, scsi_id has changed, doesn't accept -s option and expects /dev/sdX
instead of /block/sdX device paths; dm-multipath wasn't updated in this regard,
and doesn't even use the definition in the config file.

Version-Release number of selected component (if applicable):
device-mapper-multipath-0.4.7-16.fc9.i386

How reproducible:
just run multipath

Steps to Reproduce:
1. run multipath
2. edit /etc/multipath.conf to not blacklist relevant devices, and edit the
getuid callout entry
3. run multipath again
  
Actual results:
/sbin/scsi_id: invalid option -- 's'
error calling out /sbin/scsi_id -g -u -s /block/sdb
/sbin/scsi_id: invalid option -- 's'
error calling out /sbin/scsi_id -g -u -s /block/sdc

Expected results:
UID for sdb and sdc:

/sbin/scsi_id -g -u /dev/sdb
36006016026801e00de3874879730dd11
/sbin/scsi_id -g -u /dev/sdc
36006016026801e00de3874879730dd11


Additional info:
Comment 1 Ben Marzinski 2008-08-14 14:04:13 EDT
There will be a new multipath packages that fixes the scsi_id defaults shortly.

Can you please post you're /etc/multipath.conf file, and the results of running
# multipath -v3
Multipath is using the getuid_callout from the config file just fine for me.

I have two guesses why it doesn't work for you:
1. multipath requires a space between the title of a section in multipath.conf, and the open bracket.  This is know bug and will be fixed.

2. You set the new getuid_callout in the "defaults" section, but you actually have a device with a default device configuration. Check in
/usr/share/doc/device-mapper-multipath-0.4.8/multipath.conf.defaults

and see if one of the devices with its own default configuration matches your "vendor" and "product" strings.  If so, you need to copy that device config into the a "devices" section in /etc/multipath.conf, and fix getuid_callout there.
Comment 2 Paulo Rodrigues 2008-08-14 15:55:15 EDT
This is multipath.conf:

blacklist {
        devnode sda
#        devnode "^sdc"
#        devnode "^sde"
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z][[0-9]*]"
        devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
        devnode "dasd[a-z]+[0-9]*"
}

defaults {
        udev_dir                /dev
        polling_interval        120
        selector                "round-robin 0"
        default_path_grouping_policy    failover
        getuid_callout          "/sbin/scsi_id -g -u /dev/%n"
        prio_callout            /sbin/mpath_prio_emc
        path_checker            emc_clariion
        rr_min_io               100
        rr_weight               priorities
        failback                immediate
        no_path_retry           3
        user_friendly_name      yes
}

multipaths {
        multipath {
                wwid                    36006016026801e004c2fe9bd13afdc11
                alias                   mpath0
                path_grouping_policy    failover
                path_checker            readsector0
                path_selector           "round-robin 0"
                failback                immediate
        }
}

And this is the output of multipath -v3:

dm-0: blacklisted
dm-1: blacklisted
ram0: blacklisted
ram1: blacklisted
ram10: blacklisted
ram11: blacklisted
ram12: blacklisted
ram13: blacklisted
ram14: blacklisted
ram15: blacklisted
ram2: blacklisted
ram3: blacklisted
ram4: blacklisted
ram5: blacklisted
ram6: blacklisted
ram7: blacklisted
ram8: blacklisted
ram9: blacklisted
sda: blacklisted
sdd: not found in pathvec
sdd: mask = 0x1f
sdd: bus = 1
sdd: dev_t = 8:48
sdd: size = 1974712832
sdd: vendor = DGC
sdd: product = RAID 5
sdd: rev = 0324
sdd: h:b:t:l = 2:0:0:0
sdd: tgt_node_name = 0x50060160c1e08559
sdd: serial = CK200074400486
sdd: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sdd: prio = 1
sdd: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
sdd: uid = 36006016026801e004c2fe9bd13afdc11 (callout)
sde: not found in pathvec
sde: mask = 0x1f
sde: bus = 1
sde: dev_t = 8:64
sde: size = 1974712832
sde: vendor = DGC
sde: product = RAID 5
sde: rev = 0324
sde: h:b:t:l = 2:0:1:0
sde: tgt_node_name = 0x50060160c1e08559
sde: serial = CK200074400486
sde: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sde: prio = 0
sde: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
sde: uid = 36006016026801e004c2fe9bd13afdc11 (callout)
sdf: not found in pathvec
sdf: mask = 0x1f
sdf: bus = 1
sdf: dev_t = 8:80
sdf: size = 1974712832
sdf: vendor = DGC
sdf: product = RAID 5
sdf: rev = 0324
sdf: h:b:t:l = 1:0:1:0
sdf: tgt_node_name = 0x50060160c1e08559
sdf: serial = CK200074400486
sdf: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sdf: prio = 0
sdf: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
sdf: uid = 36006016026801e004c2fe9bd13afdc11 (callout)
sdg: not found in pathvec
sdg: mask = 0x1f
sdg: bus = 1
sdg: dev_t = 8:96
sdg: size = 1974712832
sdg: vendor = DGC
sdg: product = RAID 5
sdg: rev = 0324
sdg: h:b:t:l = 1:0:0:0
sdg: tgt_node_name = 0x50060160c1e08559
sdg: serial = CK200074400486
sdg: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sdg: prio = 1
sdg: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
sdg: uid = 36006016026801e004c2fe9bd13afdc11 (callout)
sr0: blacklisted
===== paths list =====
uuid                              hcil    dev dev_t pri dm_st  chk_st  vend/pr
36006016026801e004c2fe9bd13afdc11 2:0:0:0 sdd 8:48  1   [undef][undef] DGC,RAI
36006016026801e004c2fe9bd13afdc11 2:0:1:0 sde 8:64  0   [undef][undef] DGC,RAI
36006016026801e004c2fe9bd13afdc11 1:0:1:0 sdf 8:80  0   [undef][undef] DGC,RAI
36006016026801e004c2fe9bd13afdc11 1:0:0:0 sdg 8:96  1   [undef][undef] DGC,RAI
params = 1 queue_if_no_path 1 emc 4 1 round-robin 0 1 1 8:96 1000 round-robin 0 1 1 8:48 1000 round-robin 0 1 1 8:64 1000 round-robin 0 1 1 8:80 1000
status = 2 0 1 0 4 1 A 0 1 0 8:96 A 0 E 0 1 0 8:48 A 0 E 0 1 0 8:64 A 0 E 0 1 0 8:80 A 0
sdg: mask = 0x4
sdg: path checker = emc_clariion (controller setting)
sdg: state = 2
sdd: mask = 0x4
sdd: path checker = emc_clariion (controller setting)
sdd: state = 2
sde: mask = 0x4
sde: path checker = emc_clariion (controller setting)
sde: state = 2
sdf: mask = 0x4
sdf: path checker = emc_clariion (controller setting)
sdf: state = 2

I had replaced /sbin/scsi_id with:

#!/bin/bash
a=$*
b=`echo $* | sed s/\-s// | sed s/block/dev/`
/sbin/scsi_id.backup $b

and renamed scsi_id to scsi_id.backup so that it worked.

Now, I undid that, and added a device stanza (copied from the defaults file) to multipath.conf, like this:

device {
        vendor                  "DGC"
        product                 "*"
        bl_product              "LUN_Z"
        path_grouping_policy    group_by_prio
        getuid_callout          "/sbin/scsi_id -g -u /dev/%n"
        prio_callout            "/sbin/mpath_prio_emc /dev/%n"
        hardware_handler        "1 emc"
        features                "1 queue_if_no_path"
        path_checker            emc_clariion
        failback                immediate
}

and the result of multipath -v3 is:

dm-0: blacklisted
dm-1: blacklisted
ram0: blacklisted
ram1: blacklisted
ram10: blacklisted
ram11: blacklisted
ram12: blacklisted
ram13: blacklisted
ram14: blacklisted
ram15: blacklisted
ram2: blacklisted
ram3: blacklisted
ram4: blacklisted
ram5: blacklisted
ram6: blacklisted
ram7: blacklisted
ram8: blacklisted
ram9: blacklisted
sda: blacklisted
sdd: not found in pathvec
sdd: mask = 0x1f
sdd: bus = 1
sdd: dev_t = 8:48
sdd: size = 1974712832
sdd: vendor = DGC
sdd: product = RAID 5
sdd: rev = 0324
sdd: h:b:t:l = 2:0:0:0
sdd: tgt_node_name = 0x50060160c1e08559
sdd: serial = CK200074400486
sdd: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sdd: prio = 1
sdd: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
/sbin/scsi_id: invalid option -- 's'
error calling out /sbin/scsi_id -g -u -s /block/sdd
sde: not found in pathvec
sde: mask = 0x1f
sde: bus = 1
sde: dev_t = 8:64
sde: size = 1974712832
sde: vendor = DGC
sde: product = RAID 5
sde: rev = 0324
sde: h:b:t:l = 2:0:1:0
sde: tgt_node_name = 0x50060160c1e08559
sde: serial = CK200074400486
sde: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sde: prio = 0
sde: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
/sbin/scsi_id: invalid option -- 's'
error calling out /sbin/scsi_id -g -u -s /block/sde
sdf: not found in pathvec
sdf: mask = 0x1f
sdf: bus = 1
sdf: dev_t = 8:80
sdf: size = 1974712832
sdf: vendor = DGC
sdf: product = RAID 5
sdf: rev = 0324
sdf: h:b:t:l = 1:0:1:0
sdf: tgt_node_name = 0x50060160c1e08559
sdf: serial = CK200074400486
sdf: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sdf: prio = 0
sdf: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
/sbin/scsi_id: invalid option -- 's'
error calling out /sbin/scsi_id -g -u -s /block/sdf
sdg: not found in pathvec
sdg: mask = 0x1f
sdg: bus = 1
sdg: dev_t = 8:96
sdg: size = 1974712832
sdg: vendor = DGC
sdg: product = RAID 5
sdg: rev = 0324
sdg: h:b:t:l = 1:0:0:0
sdg: tgt_node_name = 0x50060160c1e08559
sdg: serial = CK200074400486
sdg: getprio = /sbin/mpath_prio_emc /dev/%n (controller setting)
sdg: prio = 1
sdg: getuid = /sbin/scsi_id -g -u -s /block/%n (controller setting)
/sbin/scsi_id: invalid option -- 's'
error calling out /sbin/scsi_id -g -u -s /block/sdg
sr0: blacklisted
===== paths list =====
uuid hcil    dev dev_t pri dm_st  chk_st  vend/prod/rev
     2:0:0:0 sdd 8:48  1   [undef][undef] DGC,RAID 5
     2:0:1:0 sde 8:64  0   [undef][undef] DGC,RAID 5
     1:0:1:0 sdf 8:80  0   [undef][undef] DGC,RAID 5
     1:0:0:0 sdg 8:96  1   [undef][undef] DGC,RAID 5
params = 1 queue_if_no_path 1 emc 4 1 round-robin 0 1 1 8:96 1000 round-robin 0 1 1 8:48 1000 round-robin 0 1 1 8:64 1000 round-robin 0 1 1 8:80 1000
status = 2 0 1 0 4 1 A 0 1 0 8:96 A 0 E 0 1 0 8:48 A 0 E 0 1 0 8:64 A 0 E 0 1 0 8:80 A 0
sdg: mask = 0x4
sdg: path checker = emc_clariion (controller setting)
sdg: state = 2
sdd: mask = 0x4
sdd: path checker = emc_clariion (controller setting)
sdd: state = 2
sde: mask = 0x4
sde: path checker = emc_clariion (controller setting)
sde: state = 2
sdf: mask = 0x4
sdf: path checker = emc_clariion (controller setting)
sdf: state = 2

Also, now I notice, I'm on device-mapper-multipath-0.4.7-16.fc9.i386 not 0.4.8
Comment 3 Zing 2008-08-25 17:50:04 EDT
the config_space_fix.patch isn't right.  I have a conf file that tries to overwrite certain device parameters, which this patch then parses the device as  being blacklisted instead.  I can see it in "show config" in multipathd and my parameters don't get recognized.  If I revert, things are "ok".
Comment 4 Ben Marzinski 2008-08-26 16:46:28 EDT
Zing, can you post your /etc/multipath.conf file, so that I can try to reproduce it on my machine. If you post it as an attachment, then there will be no chance of having the whitespace changed.

Thanks.
Comment 5 Zing 2008-08-27 22:55:57 EDT
Created attachment 315168 [details]
my multipath.conf

Here's my current multipath.conf that gets incorrectly parsed.
Comment 6 Zing 2008-08-27 22:57:35 EDT
Created attachment 315169 [details]
show config output

This is what my "show config" looks like for the above.
Comment 7 Ben Marzinski 2008-09-26 19:32:23 EDT
Oops. There was a regression in the config_space_fix.patch. Thanks for pointing it out, Zing.
Comment 8 Bug Zapper 2009-06-09 22:20:44 EDT
This message is a reminder that Fedora 9 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 9.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '9'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 9's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 9 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Comment 9 Bug Zapper 2009-07-15 04:15:07 EDT
Fedora 9 changed to end-of-life (EOL) status on 2009-07-10. Fedora 9 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.

Note You need to log in before you can comment on or make changes to this bug.