Bug 592494

Summary: multipath.conf settings does not override the default hwtable settings
Product: Red Hat Enterprise Linux 6 Reporter: Babu Moger <babu.moger>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED CURRENTRELEASE QA Contact: Red Hat Kernel QE team <kernel-qe>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: agk, bdonahue, bmarzins, christophe.varoqui, dl-iop-bugzilla, dwysocha, egoggin, heinzm, junichi.nomura, kueda, lmb, mbroz, prockai, rmusil, tranlan
Target Milestone: rcKeywords: OtherQA
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: device-mapper-multipath-0.4.9-21.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-10 20:09:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Babu Moger 2010-05-14 23:06:36 UTC
Description of problem:
I have noticed this problem during my test on RHEL 6 snapshot 2. 
I have tried to change the default "no_path_retry" parameter for LSI storate.
This is how my devices section in multipath.conf looks like. 

devices {
 device {
  vendor                  "LSI"
  product                 "INF-01-00"
  path_grouping_policy    group_by_prio
  getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
  path_checker            rdac
  path_selector           "round-robin 0"
  hardware_handler        "1 rdac"
  failback                15
  rr_weight               priorities
  no_path_retry           fail
  }
}

My intention was only to change no_path_retry from quueing to fail. 

I re-started the multipath deamon but the parameter did not change. Multipath -ll showed like this.

mpathax (360080e50001b0982000059ab4be886b0) dm-36 LSI,INF-01-00
size=4.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 rdac' wp=rw
|-+- policy='round-robin 0' prio=6 status=active
| `- 8:0:0:44  sdcq 69:224  active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
  `- 9:0:0:44  sdcp 69:208  active ghost running


Version-Release number of selected component (if applicable):
RHEL 6 snopshot 2

How reproducible:

Always
Steps to Reproduce:
1. Install RHEL 6
2. Present some Luns from LSI storage
3. update the multipath.conf
4. restart the multipathd deamon.
  
Actual results:

Multipath -ll output did not show the updated no_path_retry parameter.

Expected results:
Multipath  -ll should show the updated no_path_retry parameter.

Additional info:

However, I did a little experimenet. I changed the vendor parameter in multipath.conf as below. 

 vendor                "(LSI|ENGENIO)"

This worked. I am sure this issue is related how the vendor id is present in the hwtable.c. I have looked at the hwtable.c entry. It is as below. Notice the 
.vendor parameter. 

 /* LSI Generic rdac storage */
        {
                .vendor        = "(LSI|ENGENIO)",
                .product       = "INF-01-00",
                .getuid        = DEFAULT_GETUID,
                .features      = "2 pg_init_retries 50",
                .hwhandler     = "1 rdac",
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = GROUP_BY_PRIO,
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = 15,
                .minio         = DEFAULT_MINIO,
                .checker_name  = RDAC,
                .prio_name     = PRIO_RDAC,
        },

Comment 2 Ben Marzinski 2010-05-20 19:10:08 UTC
multipath should be looking for matches from user supplied configuration sections first.  Apparently, it's not.

Comment 3 Babu Moger 2010-05-20 19:19:07 UTC
One more note..  If it was not clear from my earlier note..

hwtable.c  has the vendor entry as below..
.vendor        = "(LSI|ENGENIO)",

In multipath.conf i passed  the vendor entry is as below.
vendor                  "LSI"

The above combination does not work. 

But, when i changed the multipath.conf as below(to match hwtable.c) then it works fine. 
 vendor                  "(LSI|ENGENIO)"

Comment 4 Ben Marzinski 2010-05-22 00:27:43 UTC
Here are some packages that should fix this problem:

http://people.redhat.com/bmarzins/device-mapper-multipath/rpms/RHEL6/

Comment 5 RHEL Program Management 2010-05-25 18:06:31 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 6 Ben Marzinski 2010-05-25 19:58:30 UTC
Multipath will now look at the user supplied configurations first.

Comment 7 Babu Moger 2010-05-26 19:45:53 UTC
I have tested the packages from http://people.redhat.com/bmarzins/device-mapper-multipath/rpms/RHEL6/.  The package version is device-mapper-multipath-0.4.9-21.el6.x86_64.rpm.  I am still having issues. The new package seem like reading the values only from "default" section. It does not seem read the values from "device" section.

I see these messsages in the logs. 
May 26 13:55:27 txmpp1 multipathd: sdc: alua not supported
May 26 13:55:27 txmpp1 multipathd: sdb: alua not supported

Default section has alua as the handler.

Comment 8 Babu Moger 2010-05-27 15:37:45 UTC
Sorry for the previous comments. My multipath.conf had issues. I have verified it again.. It is working fine with the latest tools(multipath-0.4.9-21.el6).  This bug can be resolved..   Thanks for your help...

Comment 11 releng-rhel@redhat.com 2010-11-10 20:09:42 UTC
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.