From: NeilBrown <neilb@suse.com>
To: Guoqing Jiang <gqJiang@suse.com>
Cc: Goldwyn Rodrigues <rgoldwyn@suse.de>, linux-raid@vger.kernel.org
Subject: Re: [PATCH 06/12] md-cluster: add the error check if failed to get dlm lock
Date: Wed, 29 Jul 2015 10:22:38 +1000 [thread overview]
Message-ID: <20150729102238.5ecc2e96@noble> (raw)
In-Reply-To: <55B6F13F.7070100@suse.com>
On Tue, 28 Jul 2015 11:04:31 +0800 Guoqing Jiang <gqJiang@suse.com>
wrote:
> Hi Goldwyn,
>
> Goldwyn Rodrigues wrote:
> > Hi Guoqing,
> >
> > On 07/10/2015 04:01 AM, Guoqing Jiang wrote:
> >> In complicated cluster environment, it is possible that the
> >> dlm lock couldn't be get/convert on purpose, the related err
> >> info is added for better debug potential issue.
> >>
> >> For lockres_free, if the lock is blocking by a lock request or
> >> conversion request, then dlm_unlock just put it back to grant
> >> queue, so need to ensure the lock is free finally.
> >
> >
> > I cannot think of a scenario where a DLM_CANCEL will be returned.
> > Could you explain the situation a bit more?
> >
> Thanks for the review. When the node is receiving message where it needs
> to convert message
> lock, and lockres_free is invoked if user stop array meanwhile, then the
> message lock is put back
> to grant queue at the CR mode and message lock is not released, am I
> misunderstood the case?
>
> Thanks,
> Guoqing
Thanks for these patches Guoqing and for the review Goldwyn.
I've queued all but the last one (which you both agree we don't need).
I have queued this one too for now, though it Goldwyn has further
comments I'd be very happy to see them.
I'm a bit bothered by:
+retry:
+ ret = dlm_unlock(res->ls, res->lksb.sb_lkid, 0, &res->lksb, res);
+ if (unlikely(ret != 0)) {
+ pr_info("%s: failed to unlock %s return %d\n", __func__, res->name, ret);
+
+ /* if a lock conversion is cancelled, then the lock is put
+ * back to grant queue, need to ensure it is unlocked */
+ if (ret == -DLM_ECANCEL)
+ goto retry;
+ }
which looks like it could loop repeatedly. Maybe if there was
documentation for DLM_LKF_CANCEL or DLM_ECANCEL somewhere, that might
make me feel more comfortable, but the only documentation that I can
find is the code ... is there real documentation that google doesn't
find for me?
Thanks,
NeilBrown
next prev parent reply other threads:[~2015-07-29 0:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-10 8:54 [PATCH 00/12] md-cluster: code improvement, fixs and new feature Guoqing Jiang
2015-07-10 8:54 ` [PATCH 01/12] md-cluster: use %pU to print UUIDs Guoqing Jiang
2015-07-27 16:21 ` Goldwyn Rodrigues
2015-07-10 8:54 ` [PATCH 02/12] md-cluster: split recover_slot for future code reuse Guoqing Jiang
2015-07-10 8:54 ` [PATCH 03/12] md-cluster: transfer the resync ownership to another node Guoqing Jiang
2015-07-27 16:24 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 04/12] md-cluster: fix deadlock issue on message lock Guoqing Jiang
2015-07-10 9:01 ` [PATCH 05/12] md-cluster: init completion within lockres_init Guoqing Jiang
2015-07-27 16:44 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 06/12] md-cluster: add the error check if failed to get dlm lock Guoqing Jiang
2015-07-27 16:48 ` Goldwyn Rodrigues
2015-07-28 3:04 ` Guoqing Jiang
2015-07-29 0:22 ` NeilBrown [this message]
2015-07-29 2:03 ` Guoqing Jiang
2015-07-29 23:39 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 07/12] md-cluster: init suspend_list and suspend_lock early in join Guoqing Jiang
2015-07-27 16:29 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 08/12] md-cluster: remove the unused sb_lock Guoqing Jiang
2015-07-27 16:29 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 09/12] md-cluster: add missed lockres_free Guoqing Jiang
2015-07-27 16:30 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 10/12] md-cluster: only call complete(&cinfo->completion) when node join cluster Guoqing Jiang
2015-07-27 16:49 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 11/12] md-cluster: Read the disk bitmap sb and check if it needs recovery Guoqing Jiang
2015-07-27 16:31 ` Goldwyn Rodrigues
2015-07-10 9:01 ` [PATCH 12/12] md-cluster: handle error situations more precisely in lockres_init Guoqing Jiang
2015-07-27 16:34 ` Goldwyn Rodrigues
2015-07-28 3:05 ` Guoqing Jiang
2015-07-27 16:25 ` [PATCH 04/12] md-cluster: fix deadlock issue on message lock Goldwyn Rodrigues
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=20150729102238.5ecc2e96@noble \
--to=neilb@suse.com \
--cc=gqJiang@suse.com \
--cc=linux-raid@vger.kernel.org \
--cc=rgoldwyn@suse.de \
/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