Bug 592494 - multipath.conf settings does not override the default hwtable settings
multipath.conf settings does not override the default hwtable settings
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: device-mapper-multipath (Show other bugs)
6.0
All Linux
low Severity medium
: rc
: ---
Assigned To: Ben Marzinski
Red Hat Kernel QE team
: OtherQA
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-14 19:06 EDT by Babu Moger
Modified: 2010-11-10 15:09 EST (History)
15 users (show)

See Also:
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 15:09:42 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Babu Moger 2010-05-14 19:06:36 EDT
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 15:10:08 EDT
multipath should be looking for matches from user supplied configuration sections first.  Apparently, it's not.
Comment 3 Babu Moger 2010-05-20 15:19:07 EDT
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-21 20:27:43 EDT
Here are some packages that should fix this problem:

http://people.redhat.com/bmarzins/device-mapper-multipath/rpms/RHEL6/
Comment 5 RHEL Product and Program Management 2010-05-25 14:06:31 EDT
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 15:58:30 EDT
Multipath will now look at the user supplied configurations first.
Comment 7 Babu Moger 2010-05-26 15:45:53 EDT
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 11:37:45 EDT
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 15:09:42 EST
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.

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