Comment 4 for bug 1489379

Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2015-09-03 11:05 EDT-------
How to reproduce with QEMU/KVM (2 arguments as "-drive file=test.qcow2,serial=helloworld")

Force the path checker to tur:

~ # cat /etc/multipath.conf
defaults {
user_friendly_names yes
path_checker tur
}

blacklist_exceptions {
property ID_SERIAL
}

Notice the dlopen() error, and paths got no uuids, thus blacklisted:

~ # multipath -v3
...
<...> | sda: udev property ID_SERIAL whitelisted
...
<...> | sda: vendor = QEMU
<...> | sda: product = QEMU HARDDISK
<...> | sda: rev = 2.2.
<...> | sda: h:b:t:l = 0:0:1:0
...
<...> | sda: serial = helloworld
<...> | sda: get_state
<...> | loading /lib/multipath/libchecktur.so checker
<...> | A dynamic linking error occurred: (libgcc_s.so.1: cannot open shared object file: No such file or directory)
<...> | unloading tur checker
<...> | sda: path checker = (config file default)
<...> | sda: checker timeout = 30 ms (internal default)
<...> | sda: No checker selected
<...> | sdb: udev property ID_SERIAL whitelisted
...
<...> | sdb: vendor = QEMU
<...> | sdb: product = QEMU HARDDISK
<...> | sdb: rev = 2.2.
<...> | sdb: h:b:t:l = 0:0:2:0
...
<...> | sdb: serial = helloworld
<...> | sdb: get_state
<...> | loading /lib/multipath/libchecktur.so checker
<...> | A dynamic linking error occurred: (libgcc_s.so.1: cannot open shared object file: No such file or directory)
<...> | unloading tur checker
<...> | sdb: path checker = (config file default)
<...> | sdb: checker timeout = 30 ms (internal default)
<...> | sdb: No checker selected
<...> | loop0: blacklisted, udev property missing
...
===== paths list =====
uuid hcil dev dev_t pri dm_st chk_st vend/prod/rev dev_st
0:0:1:0 sda 8:0 -1 undef faulty QEMU,QEMU HARDDISK running
0:0:2:0 sdb 8:16 -1 undef faulty QEMU,QEMU HARDDISK running
<...> | sda: orphan path, wwid blacklisted
<...> | sdb: orphan path, wwid blacklisted
...
~ #

------- Comment From <email address hidden> 2015-09-03 11:10 EDT-------
And if you manually put libgcc_s.so.1 (from the libgcc1 deb package), it works fine.

~ # ls /lib/powerpc64le-linux-gnu/libgcc_s.so.1
/lib/powerpc64le-linux-gnu/libgcc_s.so.1

~ # multipath -v3
...
<...> | sda: udev property ID_SERIAL whitelisted
...
<...> | sda: serial = helloworld
<...> | sda: get_state
<...> | loading /lib/multipath/libchecktur.so checker
<...> | sda: path checker = tur (config file default)
<...> | sda: checker timeout = 30 ms (internal default)
<...> | sda: state = up
<...> | sda: uid_attribute = ID_SERIAL (internal default)
<...> | sda: uid = 0QEMU_QEMU_HARDDISK_helloworld (udev)
<...> | sda: detect_prio = 1 (config file default)
<...> | sda: prio = const (internal default)
<...> | sda: prio args = (internal default)
<...> | sda: const prio = 1
<...> | sdb: udev property ID_SERIAL whitelisted
...
<...> | sdb: serial = helloworld
<...> | sdb: get_state
<...> | sdb: path checker = tur (config file default)
<...> | sdb: checker timeout = 30 ms (internal default)
<...> | sdb: state = up
<...> | sdb: uid_attribute = ID_SERIAL (internal default)
<...> | sdb: uid = 0QEMU_QEMU_HARDDISK_helloworld (udev)
<...> | sdb: detect_prio = 1 (config file default)
<...> | sdb: prio = const (internal default)
<...> | sdb: prio args = (internal default)
<...> | sdb: const prio = 1
<...> | loop0: blacklisted, udev property missing
...
===== paths list =====
uuid hcil dev dev_t pri dm_st chk_st vend/prod/re
0QEMU_QEMU_HARDDISK_helloworld 0:0:1:0 sda 8:0 1 undef ready QEMU,QEMU HA
0QEMU_QEMU_HARDDISK_helloworld 0:0:2:0 sdb 8:16 1 undef ready QEMU,QEMU HA
...
...
create: mpatha (0QEMU_QEMU_HARDDISK_helloworld) undef QEMU,QEMU HARDDISK
size=128G features='0' hwhandler='0' wp=undef
|-+- policy='round-robin 0' prio=1 status=undef
| `- 0:0:1:0 sda 8:0 undef ready running
`-+- policy='round-robin 0' prio=1 status=undef
`- 0:0:2:0 sdb 8:16 undef ready running
<...> | tur checker refcount 2
<...> | const prioritizer refcount 2
<...> | tur checker refcount 1
<...> | const prioritizer refcount 1
<...> | unloading const prioritizer
<...> | unloading tur checker
<...> | unloading directio checker