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:
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.
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
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".
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.
Created attachment 315168 [details] my multipath.conf Here's my current multipath.conf that gets incorrectly parsed.
Created attachment 315169 [details] show config output This is what my "show config" looks like for the above.
Oops. There was a regression in the config_space_fix.patch. Thanks for pointing it out, Zing.
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
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.