[dm-devel] SUSE multipath-tools patch resync

Christophe Varoqui christophe.varoqui at gmail.com
Wed May 25 21:29:50 UTC 2011


> on a 'multipathd reconfigure' command, the uxclient gets stuck and the
> multipathd daemon strace shows:
> 
> $ sudo strace -f -p 17721
> Process 17721 attached with 7 threads - interrupt to quit
> [pid 17757] futex(0x7fdc6a1540a4, FUTEX_WAIT_PRIVATE, 3, NULL
> <unfinished ...>
> [pid 17756] futex(0x11167f0, FUTEX_WAIT_PRIVATE, 2, NULL
> <unfinished ...>
> [pid 17755] ioctl(3, DM_DEV_WAIT <unfinished ...>
> [pid 17724] futex(0x11167f0, FUTEX_WAIT_PRIVATE, 2, NULL
> <unfinished ...>
> [pid 17723] recvmsg(6,  <unfinished ...>
> [pid 17722] futex(0x110a1b4, FUTEX_WAIT_PRIVATE, 15, NULL
> <unfinished ...>
> [pid 17721] futex(0x612624, FUTEX_WAIT_PRIVATE, 1, NULL
> 
ok, I dug it to 9e7b4d8d6fa8dc9433c1e60d4bd6717aec2f5296

Here you add acquire/release the vector lock inside
multipathd/main.c:reconfigure(), but as seen in the following LCKDBG
trace, the lock is already acquired in
multipathd/main.c:uxsock_trigger()

Hence the lock -> lock = hang.

I commited and pushed a partial revert of
9e7b4d8d6fa8dc9433c1e60d4bd6717aec2f5296

But maybe you'd rather see us stop acquiring the lock from
uxsock_trigger() to acquire more selectively in the functions called
from there ... Please comment.

Regards,
-- 
Christophe Varoqui
OpenSVC - Tools to scale
http://www.opensvc.com/




More information about the dm-devel mailing list