Linux Device Mapper development
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: christophe.varoqui@opensvc.com
Cc: device-mapper development <dm-devel@redhat.com>,
	Christophe Varoqui <christophe.varoqui@gmail.com>
Subject: Re: SUSE multipath-tools patch resync
Date: Thu, 26 May 2011 08:28:24 +0200	[thread overview]
Message-ID: <4DDDF308.1020804@suse.de> (raw)
In-Reply-To: <1306358990.2290.43.camel@lapoo.opensvc.com>

On 05/25/2011 11:29 PM, Christophe Varoqui wrote:
>
>> 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.
>
Hmm. Yes, your fix appears to be correct.
I had several locking issues during startup (calling cli commands
while the daemon is still starting up is a nice way of testing it),
and several (unsuccessful) attempts in fixing it.
Real cause was a missing locking during initial configuration,
so it looks as if 9e7b4d8d6fa8dc9433c1e60d4bd6717aec2f5296
was in fact a left-over from the earlier attempts.

So yeah, your patch seems to be fine.

Will be doing more testing here.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		      zSeries & Storage
hare@suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

      reply	other threads:[~2011-05-26  6:28 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-18 15:03 SUSE multipath-tools patch resync Hannes Reinecke
2011-05-20  6:26 ` Christophe Varoqui
2011-05-25  7:51 ` Christophe Varoqui
2011-05-25  9:08   ` Hannes Reinecke
2011-05-25 11:14     ` Christophe Varoqui
2011-05-25 12:10       ` Christophe Varoqui
2011-05-25 12:22         ` Christophe Varoqui
2011-05-25 12:45           ` Hannes Reinecke
2011-05-25 21:29           ` Christophe Varoqui
2011-05-26  6:28             ` Hannes Reinecke [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DDDF308.1020804@suse.de \
    --to=hare@suse.de \
    --cc=christophe.varoqui@gmail.com \
    --cc=christophe.varoqui@opensvc.com \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox