Bug 2166467

Summary: multipath devices that need both a table reload and a rename only get renamed on multipathd startup
Product: Red Hat Enterprise Linux 9 Reporter: Ben Marzinski <bmarzins>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Lin Li <lilin>
Severity: medium Docs Contact:
Priority: high    
Version: 9.0CC: agk, bmarzins, heinzm, lilin, msnitzer, prajnoha, zkabelac
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: device-mapper-multipath-0.8.7-19.el9 Doc Type: Bug Fix
Doc Text:
Cause: When multipath needed to rename a device, it wasn't checking if it also needed to change the configuration of the device. Consequence: If multipath needed to rename and reconfigure a device, it would only rename the device. Fix: multipath now checks for other actions it needs to perform in addition to renaming a device, and does those as well. Result: If a multipath device needs renaming and reconfiguring, multipath will now do both.
Story Points: ---
Clone Of:
: 2166468 (view as bug list) Environment:
Last Closed: 2023-05-09 08:14:07 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:
Bug Depends On:    
Bug Blocks: 2166468    

Description Ben Marzinski 2023-02-01 21:58:37 UTC
Description of problem:
If a multipath device needs to have its table reloaded and get renamed, when multipathd starts up, it will only do the rename.  To do the table reload, you need to run.

# service multipathd reload

after multipathd has started up. This does the reload, since the rename has already happened. This sort of error is most likely to be seen when the version of /etc/multipath.conf in the initramfs doesn't match the version in the regular filesystem.

Version-Release number of selected component (if applicable):
All versions

How reproducible:
Always

Steps to Reproduce:
1. create a multipath device with the following options in multipath.conf

        user_friendly_names yes
        path_selector "service-time 0"

2. Stop multipathd
3. Edit multipath.conf, and change the values to

        user_friendly_names no
        path_selector "round-robin 0"

This will make the multipath device need both a rename (from the user friendly name
to the WWID name) and a reload (from the service-time path selector to the round-robin path selector)
4. Start multipathd

Actual results:
The device will be renamed to use a WWID name, but the path selector will still be "service-time 0".

Expected results:
Both the device name will be changed to the WWID name and the path selector will be changed to "round-robin"

Comment 4 Lin Li 2023-02-17 01:28:43 UTC
Verified on device-mapper-multipath-0.8.7-20.el9
[root@storageqe-25 ~]# rpm -qa | grep multipath
device-mapper-multipath-libs-0.8.7-20.el9.x86_64
device-mapper-multipath-0.8.7-20.el9.x86_64

1. create a multipath device with the following options in multipath.conf

        user_friendly_names yes
        path_selector "service-time 0"

2. Stop multipathd
3. Edit multipath.conf, and change the values to

        user_friendly_names no
        path_selector "round-robin 0"

This will make the multipath device need both a rename (from the user friendly name
to the WWID name) and a reload (from the service-time path selector to the round-robin path selector)
4. Start multipathd
5.[root@storageqe-25 ~]# multipath -ll
360a98000324669436c2b45666c567858 dm-3 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 7:0:1:0 sdf 8:80  active ready running
| `- 8:0:1:0 sdn 8:208 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 7:0:0:0 sdb 8:16  active ready running
  `- 8:0:0:0 sdj 8:144 active ready running
360a98000324669436c2b45666c56785a dm-4 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 7:0:1:1 sdg 8:96  active ready running
| `- 8:0:1:1 sdo 8:224 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 7:0:0:1 sdc 8:32  active ready running
  `- 8:0:0:1 sdk 8:160 active ready running
360a98000324669436c2b45666c567861 dm-5 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 7:0:1:2 sdh 8:112 active ready running
| `- 8:0:1:2 sdp 8:240 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 7:0:0:2 sdd 8:48  active ready running
  `- 8:0:0:2 sdl 8:176 active ready running
360a98000324669436c2b45666c567863 dm-6 NETAPP,LUN
size=2.0G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 7:0:1:3 sdi 8:128 active ready running
| `- 8:0:1:3 sdq 65:0  active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 7:0:0:3 sde 8:64  active ready running
  `- 8:0:0:3 sdm 8:192 active ready running


Test result: Both the device name is changed to the WWID name and the path selector is changed to "round-robin"

Comment 6 errata-xmlrpc 2023-05-09 08:14:07 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 (Moderate: device-mapper-multipath security and bug fix update), 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/RHSA-2023:2459