Bug 1377532

Summary: /sbin/multipathd segfaults
Product: Red Hat Enterprise Linux 6 Reporter: nikhil kshirsagar <nkshirsa>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Lin Li <lilin>
Severity: high Docs Contact: Milan Navratil <mnavrati>
Priority: unspecified    
Version: 6.7CC: agk, bmarzins, heinzm, msnitzer, nkshirsa, prajnoha, rbalakri, yizhan, zkabelac
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: device-mapper-multipath-0.4.9-94.el6 Doc Type: Release Note
Doc Text:
The "disable_changed_wwids" `multipath.conf` option is now available in multipath to avoid data corruption The multipath tool now has the "disable_changed_wwids" `multipath.conf` option. If "disable_changed_wwids" is set to "yes", the *multipathd* service monitors path devices, and if their World Wide Identifier (WWID) changes, *multipathd* disables access to the path devices until the WWID changes back. If a Logical Unit Number (LUN) is remapped while a multipath device exists on top of it, it is possible in some cases for I/O to be written to an incorrect LUN, which leads to corruption. Writing to an incorrect LUN can be detected by *multipathd* that registers a change of the LUN WWID, and disables access to the device. Note that due to the gap between when the LUN is remapped, and when *multipathd* is notified that the device has changed, there is still a risk of corruption in some cases, and remapping in-use LUNs is still not supported.
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-21 10:52:57 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 nikhil kshirsagar 2016-09-20 03:44:17 UTC
Description of problem:
crash of /sbin/multipathd

Version-Release number of selected component (if applicable):
device-mapper-multipath-0.4.9-87.el6.x86_64

How reproducible:
N/A


Additional info:

Logs during time of crash:

:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: sdbeg: add path (uevent)
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathgz: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 6 1 69:1168 1 128:1360 1 134:1264 1 133:1280 1 130:1088 1 67:1440 1]
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: sdbeg [133:1280]: path added to devmap mpathgz
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathfe: sdazj - tur checker reports path is up
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: 69:1296: reinstated
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathfe: remaining active paths: 4
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: : failed to get parent
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: : failed to get parent
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathew: sdaze - tur checker reports path is up
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: 68:1472: reinstated
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathew: remaining active paths: 5
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: : failed to get parent
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: : failed to get parent
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathgy: sdbaw - tur checker reports path is up
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: 71:1408: reinstated
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathgy: remaining active paths: 6
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: : failed to get parent
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: : failed to get parent
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathge: sdbbe - tur checker reports path is up
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: 128:1280: reinstated
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathge: remaining active paths: 4
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathfu: sdbbc - tur checker reports path is up
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: 71:1504: reinstated
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathfu: remaining active paths: 5
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: sdbef: add path (uevent)
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathhc: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 6 1 69:1152 1 128:1344 1 134:1248 1 132:1520 1 130:1072 1 67:1424 1]
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: sdbef [132:1520]: path added to devmap mpathhc
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: sdbeh: add path (uevent)
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathha: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 6 1 69:1184 1 128:1376 1 135:1024 1 133:1296 1 130:1104 1 67:1456 1]
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: sdbeh [133:1296]: path added to devmap mpathha
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: sdben: add path (uevent)
:Sep  3 16:15:14 oraas-hk-p04-03 multipathd: mpathel: failed to access path 133:1392
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathel: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 7 1 65:1104 1 68:1296 1 130:1200 1 133:1392 1 70:1024 1 128:1472 1 135:1120 1]
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdben [133:1392]: path added to devmap mpathel
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbei: add path (uevent)
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathhe: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 6 1 69:1200 1 128:1392 1 135:1040 1 133:1312 1 130:1120 1 67:1472 1]
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbei [133:1312]: path added to devmap mpathhe
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbej: add path (uevent)
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathhd: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 6 1 69:1216 1 128:1408 1 135:1056 1 133:1328 1 130:1136 1 67:1488 1]
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbej [133:1328]: path added to devmap mpathhd
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbel: add path (uevent)
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathev: failed to access path 133:1360
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathev: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 7 1 65:1072 1 67:1520 1 130:1168 1 133:1360 1 69:1248 1 128:1440 1 135:1088 1]
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbel [133:1360]: path added to devmap mpathev
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbeo: add path (uevent)
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathem: failed to access path 133:1408
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathem: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 7 1 65:1120 1 68:1312 1 130:1216 1 133:1408 1 70:1040 1 128:1488 1 135:1136 1]
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbeo [133:1408]: path added to devmap mpathem
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbep: add path (uevent)
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathep: failed to access path 133:1424
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathep: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 7 1 65:1136 1 68:1328 1 130:1232 1 133:1424 1 70:1056 1 128:1504 1 135:1152 1]
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbep [133:1424]: path added to devmap mpathep
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbek: add path (uevent)
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpatheq: failed to access path 133:1344
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpatheq: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 7 1 65:1056 1 67:1504 1 130:1152 1 133:1344 1 69:1232 1 128:1424 1 135:1072 1]
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbek [133:1344]: path added to devmap mpatheq
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: sdbev: add path (uevent)
:Sep  3 16:15:15 oraas-hk-p04-03 multipathd: mpathei: failed to access path 133:1520
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: mpathei: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 7 1 65:1232 1 68:1424 1 131:1072 1 133:1520 1 70:1152 1 129:1344 1 135:1248 1]
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: sdbev [133:1520]: path added to devmap mpathei
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: sdber: add path (uevent)
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: mpathes: failed to access path /block
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: mpathes: load table [0 212129280 multipath 1 queue_if_no_path 0 1 1 round-robin 0 7 1 65:1168 1 68:1360 1 130:1264 1 133:1456 1 70:1088 1 129:1280 1 135:1184 1]
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: sdber [133:1456]: path added to devmap mpathes
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: sdbey: add path (uevent)
:Sep  3 16:15:16 oraas-hk-p04-03 multipathd: mpathew: failed to access path 
:Sep  3 16:15:16 oraas-hk-p04-03 abrt[34149]: File '/sbin/multipathd' seems to be deleted
:Sep  3 16:15:16 oraas-hk-p04-03 abrt[34149]: Saved core dump of pid 16104 (/sbin/multipathd) to /var/spool/abrt/ccpp-2016-09-03-16:15:16-16104 (64466944 bytes)

Comment 14 Ben Marzinski 2016-10-17 18:00:07 UTC
I've added a new multipath.conf option, "disable_changed_wwids". With this set, whenever it gets a uevent for a path device, multipathd will verify that the wwid hasn't changed. If it has, multipathd will disable the path until the wwid changes back to the value of the multipath device that it is a part of.

Comment 31 errata-xmlrpc 2017-03-21 10:52:57 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://rhn.redhat.com/errata/RHBA-2017-0697.html