Bug 1402092

Summary: "chk_st dev_st" stays "ready running" after offline the device
Product: Red Hat Enterprise Linux 7 Reporter: Ben Marzinski <bmarzins>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Lin Li <lilin>
Severity: unspecified Docs Contact: Steven J. Levine <slevine>
Priority: unspecified    
Version: 7.3CC: agk, bmarzins, heinzm, msnitzer, pasik, prajnoha, rbalakri, yizhan, zkabelac
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: device-mapper-multipath-0.4.9-101.el7 Doc Type: Bug Fix
Doc Text:
Users no longer get potentially confusing stale data for multipath devices that are not being checked Previously, when a path device is orphaned (not a member of a multipath device), the device state and checker state displayed with the "show paths" command in the state of the device before it was orphaned. As a result, the "show paths" command showed out of date information on devices that was no longer checking. With this fix, the "show paths" command now displays `undef` as the checker state and `unknown` as the device state of orphaned paths and users no longer get potentially confusing stale data for devices that are not being checked.
Story Points: ---
Clone Of: 1401769 Environment:
Last Closed: 2017-08-01 16:34:26 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: 1401769    
Bug Blocks:    

Comment 1 Ben Marzinski 2017-02-16 19:46:05 UTC
Fix Ported.

Comment 3 Steven J. Levine 2017-05-08 16:55:47 UTC
Ben:

Could you check my editing of your doc text into release note format to be sure it is still ok?  Thanks.

Steven

Comment 4 Ben Marzinski 2017-05-08 18:44:26 UTC
It looks good, except that `show pathsr` should obviously be `show paths`.

Comment 5 Lin Li 2017-05-22 09:25:19 UTC
Reproduced on device-mapper-multipath-0.4.9-99.el7
1. [root@storageqe-84 ~]# rpm -qa | grep multipath
device-mapper-multipath-libs-0.4.9-99.el7.x86_64
device-mapper-multipath-0.4.9-99.el7.x86_64

2. [root@storageqe-84 ~]# modprobe scsi_debug vpd_use_hostno=0 add_host=2 dev_size_mb=1024

3. [root@storageqe-84 ~]# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                             8:0    0   50G  0 disk  
└─mpatha                      253:0    0   50G  0 mpath 
  ├─mpatha1                   253:1    0    1G  0 part  /boot
  └─mpatha2                   253:2    0   49G  0 part  
    ├─rhel_storageqe--84-root 253:3    0   44G  0 lvm   /
    └─rhel_storageqe--84-swap 253:4    0    5G  0 lvm   [SWAP]
sdb                             8:16   0   50G  0 disk  
└─mpatha                      253:0    0   50G  0 mpath 
  ├─mpatha1                   253:1    0    1G  0 part  /boot
  └─mpatha2                   253:2    0   49G  0 part  
    ├─rhel_storageqe--84-root 253:3    0   44G  0 lvm   /
    └─rhel_storageqe--84-swap 253:4    0    5G  0 lvm   [SWAP]
sdc                             8:32   0    1G  0 disk  
└─mpathb                      253:5    0    1G  0 mpath 
sdd                             8:48   0    1G  0 disk  
└─mpathb                      253:5    0    1G  0 mpath 
sr0                            11:0    1 1024M  0 rom   
 
4.[root@storageqe-84 ~]# echo "offline" > /sys/block/sdb/device/state

5. multipath -ll
mpathb (353333330000007d0) dm-5 Linux   ,scsi_debug      
size=1.0G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 6:0:0:0 sdd 8:48 active ready  running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 5:0:0:0 sdc 8:32 active ready  running
mpatha (360fff19abdd9552f8a36e5355226ba27) dm-0 EQLOGIC ,100E-00         
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 2:0:0:0 sda 8:0  active ready  running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 4:0:1:0 sdb 8:16 active faulty offline

6. [root@storageqe-84 ~]# multipath -r
reload: mpatha (360fff19abdd9552f8a36e5355226ba27) undef EQLOGIC ,100E-00         
size=50G features='0' hwhandler='0' wp=undef
`-+- policy='service-time 0' prio=1 status=undef
  `- 2:0:0:0 sda 8:0  active ready  running
reload: mpathb (353333330000007d0) undef Linux   ,scsi_debug      
size=1.0G features='0' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=1 status=undef
| `- 5:0:0:0 sdc 8:32 active ready  running
`-+- policy='service-time 0' prio=1 status=undef
  `- 6:0:0:0 sdd 8:48 active ready  running
 
7.[root@storageqe-84 ~]# multipathd show paths
hcil    dev dev_t pri dm_st  chk_st dev_st  next_check      
2:0:0:0 sda 8:0   1   active ready  running XX........ 5/20 
4:0:1:0 sdb 8:16  1   undef  faulty offline orphan           <----------------
6:0:0:0 sdd 8:48  1   active ready  running XXXXXXX... 15/20
5:0:0:0 sdc 8:32  1   active ready  running XXXXXXX... 15/20




Verified on device-mapper-multipath-0.4.9-111.el7
1.[root@storageqe-84 ~]# rpm -qa | grep multipath
device-mapper-multipath-debuginfo-0.4.9-111.el7.x86_64
device-mapper-multipath-libs-0.4.9-111.el7.x86_64
device-mapper-multipath-0.4.9-111.el7.x86_64
device-mapper-multipath-sysvinit-0.4.9-111.el7.x86_64
device-mapper-multipath-devel-0.4.9-111.el7.x86_64

2.[root@storageqe-84 ~]# modprobe scsi_debug vpd_use_hostno=0 add_host=2 dev_size_mb=1024

3.[root@storageqe-84 ~]# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                             8:0    0   50G  0 disk  
└─mpatha                      253:0    0   50G  0 mpath 
  ├─mpatha1                   253:1    0    1G  0 part  /boot
  └─mpatha2                   253:2    0   49G  0 part  
    ├─rhel_storageqe--84-root 253:3    0   44G  0 lvm   /
    └─rhel_storageqe--84-swap 253:4    0    5G  0 lvm   [SWAP]
sdb                             8:16   0   50G  0 disk  
sdc                             8:32   0    1G  0 disk  
└─mpathb                      253:5    0    1G  0 mpath 
sdd                             8:48   0    1G  0 disk  
└─mpathb                      253:5    0    1G  0 mpath 
sr0                            11:0    1 1024M  0 rom 

4.[root@storageqe-84 ~]# echo "offline" > /sys/block/sda/device/state

5. [root@storageqe-84 ~]# multipath -ll
mpathb (353333330000007d0) dm-5 Linux   ,scsi_debug      
size=1.0G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 5:0:0:0 sdc 8:32 active ready running
`-+- policy='service-time 0' prio=1 status=enabled
  `- 6:0:0:0 sdd 8:48 active ready running
mpatha (360fff19abdd9552f8a36e5355226ba27) dm-0 EQLOGIC ,100E-00         
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=1 status=active
| `- 4:0:1:0 sdb 8:16 active ready running
`-+- policy='service-time 0' prio=0 status=enabled
  `- 2:0:0:0 sda 8:0  active faulty offline

6.[root@storageqe-84 ~]# multipath -r
reload: mpatha (360fff19abdd9552f8a36e5355226ba27) undef EQLOGIC ,100E-00         
size=50G features='0' hwhandler='0' wp=undef
`-+- policy='service-time 0' prio=1 status=undef
  `- 4:0:1:0 sdb 8:16 active ready running
reload: mpathb (353333330000007d0) undef Linux   ,scsi_debug      
size=1.0G features='0' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=1 status=undef
| `- 5:0:0:0 sdc 8:32 active ready running
`-+- policy='service-time 0' prio=1 status=undef
  `- 6:0:0:0 sdd 8:48 active ready running


7.[root@storageqe-84 ~]# multipathd show paths
hcil    dev dev_t pri dm_st  chk_st dev_st  next_check      
2:0:0:0 sda 8:0   1   undef  undef  unknown orphan         <---------------- 
4:0:1:0 sdb 8:16  1   active ready  running XXX....... 7/20 
5:0:0:0 sdc 8:32  1   active ready  running XXXXXXXXX. 18/20
6:0:0:0 sdd 8:48  1   active ready  running XXXXXXXX.. 17/20

Multipathd now prints "undef" as the checker state and "unknown" as the device state for orphaned paths.



Test result:Multipathd now prints "undef" as the checker state and "unknown" as the device state for orphaned paths.

Comment 6 errata-xmlrpc 2017-08-01 16:34:26 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-2017:1961