Bug 1666322

Summary: Possible incorrect value of disable_changed_wwids in the defaults
Product: Red Hat Enterprise Linux 8 Reporter: Jose Castillo <jcastillo>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Lin Li <lilin>
Severity: unspecified Docs Contact:
Priority: low    
Version: 8.0CC: agk, bmarzins, heinzm, lilin, msnitzer, prajnoha, rhandlin, zkabelac
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: 8.0   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: device-mapper-multipath-0.8.0-5.el8 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-05 22:18:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jose Castillo 2019-01-15 14:02:16 UTC
Description of problem:
While investigating changes in the multipath versions and configuration between RHEL 7 and RHEL 8, I found a possible discrepancy between the man page, and the result of 'multipathd show config' regarding the value of 'disable_changed_wwids'. The man page mentions the following:

---
disable_changed_wwids
If set to yes, multipathd will check the path wwid on change events, and if it has changed  from the  wwid  of  the  multipath  device, multipathd will disable access to the path until the wwid changes back.

The default is: no
---

But when I check the config, I get the following:

[root@mustang ~]# multipathd -k'show config' |grep changed_wwids
	disable_changed_wwids "yes"
[root@mustang ~]# multipathd show config |grep changed_wwids
	disable_changed_wwids "yes"

When I check in Fedora, I get two different results depending on the version of the OS. In Fedora 28, with versions:

device-mapper-multipath-0.7.4-3.git07e7bd5.fc28.x86_64
device-mapper-multipath-libs-0.7.4-3.git07e7bd5.fc28.x86_64

I have it as "no":

[root@andromeda ~]# multipathd -k'show config' |grep changed_wwids
	disable_changed_wwids "no"

But in Fedora 29, with versions:

device-mapper-multipath-libs-0.7.7-5.gitef6d98b.fc29.x86_64
device-mapper-multipath-0.7.7-5.gitef6d98b.fc29.x86_64

I get the same as in RHEL 8:

[root@darrow ~]# multipathd show config |grep changed_wwids
	disable_changed_wwids "yes"


Version-Release number of selected component (if applicable):
device-mapper-multipath-0.7.8-3.el8.x86_64
device-mapper-multipath-libs-0.7.8-3.el8.x86_64


How reproducible:
Always

Steps to Reproduce:
1. Run 'multipathd show config'
2.
3.

Actual results:
There seems to be a discrepancy regarding the default value of 'disable_changed_wwids' between the man page and the actual value obtained querying 'multipathd show config'

Expected results:
The default value mentioned in the man page should be the same as the one that 'multipathd show config' prints. 

Additional info:

Comment 1 Jose Castillo 2019-01-15 14:08:21 UTC
At the beginning I thought this was a problem in the man page, that wasn't updated after the change to default 'yes', and as such I created a very simple patch:


diff -pruN multipath-tools-0.7.8.orig/multipath/multipath.conf.5 multipath-tools-0.7.8/multipath/multipath.conf.5
--- multipath-tools-0.7.8.orig/multipath/multipath.conf.5	2019-01-15 09:54:41.881689747 +0000
+++ multipath-tools-0.7.8/multipath/multipath.conf.5	2019-01-15 13:55:22.488545219 +0000
@@ -1109,7 +1109,7 @@ if it has changed from the wwid of the m
 disable access to the path until the wwid changes back.
 .RS
 .TP
-The default is: \fBno\fR
+The default is: \fByes\fR
 .RE
 .
 .


I'm not sure anymore if it is a problem in the man page, or in the code itself. If it's the man page, I can send the patch upstream as well, since the latest version I checked seems to have 'no' as default value as well.

I'm going to investigate now the changelog between device-mapper-multipath-0.7.4-3.git07e7bd5.fc28 and device-mapper-multipath-0.7.7-5.gitef6d98b.fc29 to try to learn more about this change.

Comment 2 Jose Castillo 2019-01-15 15:22:34 UTC
Oh so actually the value of the default changed! Here is what we had in fedora 28:

1 libmultipath/defaults.h  41 #define DEFAULT_DISABLE_CHANGED_WWIDS 0

And here is what we have upstream:

1 libmultipath/defaults.h  42 #define DEFAULT_DISABLE_CHANGED_WWIDS 1

So the man page is incorrect. Ben, I'm not getting confused here, right?

Comment 3 Ben Marzinski 2019-01-16 18:32:43 UTC
Yes. The default got changed, and the man page should be updated to match.

Comment 4 Ben Marzinski 2019-06-03 22:14:37 UTC
disable_changed_wwids no longer does anything, since multipath has completely changed how it handles changing wwids. It it correctly listed in the man page as deprecated and ignored.

Comment 6 Lin Li 2019-06-13 14:22:58 UTC
Verified on device-mapper-multipath-0.8.0-5.el8

[root@storageqe-05 ~]# rpm -qa | grep multipath
device-mapper-multipath-0.8.0-5.el8.x86_64
device-mapper-multipath-libs-0.8.0-5.el8.x86_64

[root@storageqe-05 ~]# man multipath.conf
       disable_changed_wwids
                        This  option is deprecated and ignored. If the WWID of
                        a path suddenly changes, multipathd handles it  as  if
                        it was removed and then added again.


[root@storageqe-05 ~]# multipathd -k'show config' |grep changed_wwids
	disable_changed_wwids ignored

[root@storageqe-05 ~]# multipathd show config |grep changed_wwids
	disable_changed_wwids ignored

Comment 8 errata-xmlrpc 2019-11-05 22:18:16 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:3578