Bug 1401391 - dynamic linking error occurred when executing "multipath -r" after offline one disk
Summary: dynamic linking error occurred when executing "multipath -r" after offline on...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: device-mapper-multipath
Version: 6.9
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Ben Marzinski
QA Contact: Lin Li
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-05 06:33 UTC by Zhang Yi
Modified: 2017-05-11 02:41 UTC (History)
7 users (show)

Fixed In Version: device-mapper-multipath-0.4.9-98.el6
Doc Type: Bug Fix
Doc Text:
Cause: If multipath never set up a prioritizer for a device, when it exitting, it would try to drop a reference to the non-existent prioritizer. Consequence: Multipath would print a warning message that it couldn't find the prioritizer Fix: Multipath now checks that the prioritizer has been set up before trying to drop the reference to it. Result: Multipath no longer prints a warning message on exit, when it doesn't set up a prioritizer for a device.
Clone Of:
Environment:
Last Closed: 2017-03-21 10:53:12 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:0697 0 normal SHIPPED_LIVE device-mapper-multipath bug fix and enhancement update 2017-03-21 12:39:06 UTC

Comment 5 Ben Marzinski 2016-12-05 19:35:08 UTC
I have a fix for the dynamic linking error message. The message doesn't effect anything. It just tries some pointless actions during shutdown, that it should skip.

As far as the dev_st oddness, when a path is an orphan, neither the chk_state nor the dev_st get updated. So both of them remain as they were the last time the path was checked before it was orphaned.  I suppose multipathd could report
them as undef, just like with the dm_st. I'm not sure whether this qualifies as a bug or not.  If you think so, open a RHEL7 bug as well, since it should get fixed there first.

Comment 8 Ben Marzinski 2016-12-06 22:28:06 UTC
Multipath was trying to drop a reference on a prioritizer that had never been set up. It now checks first, and doesn't try to drop the reference if there is no prioritizer set up.

Comment 10 Lin Li 2016-12-14 06:09:44 UTC
Reproduced on device-mapper-multipath-0.4.9-97.el6
steps:
1.# rpm -qa | grep multipath 
device-mapper-multipath-0.4.9-97.el6.x86_64
device-mapper-multipath-libs-0.4.9-97.el6.x86_64
2.uname -r
 2.6.32-676.el6.x86_64
3.# modprobe scsi_debug vpd_use_hostno=0 add_host=2 dev_size_mb=1024
4.# lsblk 
NAME                                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                                   8:0    0 68.3G  0 disk  
├─sda1                                8:1    0  500M  0 part  
└─sda2                                8:2    0 67.9G  0 part  
  ├─rhel_storageqe--02-swap (dm-5)  253:5    0  6.9G  0 lvm   
  ├─rhel_storageqe--02-home (dm-6)  253:6    0   20G  0 lvm   
  └─rhel_storageqe--02-root (dm-7)  253:7    0   41G  0 lvm   
sdb                                   8:16   0   50G  0 disk  
└─mpathb (dm-0)                     253:0    0   50G  0 mpath 
  ├─mpathbp1 (dm-1)                 253:1    0  500M  0 part  /boot
  └─mpathbp2 (dm-2)                 253:2    0 49.5G  0 part  
    ├─vg_storageqe02-lv_root (dm-3) 253:3    0 41.7G  0 lvm   /
    └─vg_storageqe02-lv_swap (dm-4) 253:4    0  7.8G  0 lvm   [SWAP]
sdc                                   8:32   0   10G  0 disk  
sde                                   8:64   0   10G  0 disk  
sdd                                   8:48   0   50G  0 disk  
└─mpathb (dm-0)                     253:0    0   50G  0 mpath 
  ├─mpathbp1 (dm-1)                 253:1    0  500M  0 part  /boot
  └─mpathbp2 (dm-2)                 253:2    0 49.5G  0 part  
    ├─vg_storageqe02-lv_root (dm-3) 253:3    0 41.7G  0 lvm   /
    └─vg_storageqe02-lv_swap (dm-4) 253:4    0  7.8G  0 lvm   [SWAP]
sdf                                   8:80   0    1G  0 disk  
sdg                                   8:96   0    1G  0 disk

5.# echo "offline" > /sys/block/sdd/device/state
6.# multipath -ll
mpathb (360a980003246694a412b456733426155) dm-0 NETAPP,LUN
size=50G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=2 status=active
  |- 0:0:0:0 sdb 8:16 active ready  running
  `- 1:0:0:0 sdd 8:48 failed faulty running

7.# multipath -r
reload: mpathb (360a980003246694a412b456733426155) undef NETAPP,LUN
size=50G features='3 queue_if_no_path pg_init_retries 50' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=2 status=undef
  `- 0:0:0:0 sdb 8:16 active ready  running
Dec 13 04:16:50 | A dynamic linking error occurred: (/lib64/multipath/libprio.so: cannot open shared object file: No such file or directory)




Verified on device-mapper-multipath-0.4.9-99.el6
steps:
1.# rpm -qa | grep multipath
device-mapper-multipath-debuginfo-0.4.9-99.el6.x86_64
device-mapper-multipath-libs-0.4.9-99.el6.x86_64
device-mapper-multipath-0.4.9-99.el6.x86_64
2. # uname -r
2.6.32-676.el6.x86_64
3.# modprobe scsi_debug vpd_use_hostno=0 add_host=2 dev_size_mb=1024
4.# lsblk
NAME                                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda                                   8:0    0   50G  0 disk  
└─mpatha (dm-0)                     253:0    0   50G  0 mpath 
  ├─mpathap1 (dm-1)                 253:1    0  500M  0 part  /boot
  └─mpathap2 (dm-2)                 253:2    0 49.5G  0 part  
    ├─vg_storageqe84-lv_root (dm-3) 253:3    0 41.7G  0 lvm   /
    └─vg_storageqe84-lv_swap (dm-4) 253:4    0  7.9G  0 lvm   [SWAP]
sdb                                   8:16   0   50G  0 disk  
└─mpatha (dm-0)                     253:0    0   50G  0 mpath 
  ├─mpathap1 (dm-1)                 253:1    0  500M  0 part  /boot
  └─mpathap2 (dm-2)                 253:2    0 49.5G  0 part  
    ├─vg_storageqe84-lv_root (dm-3) 253:3    0 41.7G  0 lvm   /
    └─vg_storageqe84-lv_swap (dm-4) 253:4    0  7.9G  0 lvm   [SWAP]
sr0                                  11:0    1 1024M  0 rom   
sdc                                   8:32   0    1G  0 disk  
sdd                                   8:48   0    1G  0 disk  


5.# echo "offline" > /sys/block/sdb/device/state
6.# multipath -ll
mpatha (360fff19abdd9552f8a36e5355226ba27) dm-0 EQLOGIC,100E-00
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 0:0:0:0 sda 8:0  active ready running
`-+- policy='round-robin 0' prio=0 status=enabled
  `- 1:0:0:0 sdb 8:16 failed faulty running

7.# multipath -r
reload: mpatha (360fff19abdd9552f8a36e5355226ba27) undef EQLOGIC,100E-00
size=50G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
  `- 0:0:0:0 sda 8:0  active ready running       
 ----------> no longer print dynamic linking error message



Test result:
It has a fix for the dynamic linking error message

Comment 12 errata-xmlrpc 2017-03-21 10:53:12 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


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