From: David Teigland <teigland@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] Why does dlm_lock function fails when downconvert a dlm lock?
Date: Mon, 16 Aug 2021 09:41:18 -0500 [thread overview]
Message-ID: <20210816144118.GB23630@redhat.com> (raw)
In-Reply-To: <a8800dfb-a253-5b43-f47c-bd5b9076c2ae@suse.com>
On Fri, Aug 13, 2021 at 02:49:04PM +0800, Gang He wrote:
> Hi David,
>
> On 2021/8/13 1:45, David Teigland wrote:
> > On Thu, Aug 12, 2021 at 01:44:53PM +0800, Gang He wrote:
> > > In fact, I can reproduce this problem stably.
> > > I want to know if this error happen is by our expectation? since there is
> > > not any extreme pressure test.
> > > Second, how should we handle these error cases? call dlm_lock function
> > > again? maybe the function will fails again, that will lead to kernel
> > > soft-lockup after multiple re-tries.
> >
> > What's probably happening is that ocfs2 calls dlm_unlock(CANCEL) to cancel
> > an in-progress dlm_lock() request. Before the cancel completes (or the
> > original request completes), ocfs2 calls dlm_lock() again on the same
> > resource. This dlm_lock() returns -EBUSY because the previous request has
> > not completed, either normally or by cancellation. This is expected.
> These dlm_lock and dlm_unlock are invoked in the same node, or the different
> nodes?
different
> > A couple options to try: wait for the original request to complete
> > (normally or by cancellation) before calling dlm_lock() again, or retry
> > dlm_lock() on -EBUSY.
> If I retry dlm_lock() repeatedly, I just wonder if this will lead to kernel
> soft lockup or waste lots of CPU.
I'm not aware of other code doing this, so I can't tell you with certainty.
It would depend largely on the implementation in the caller.
> If dlm_lock() function returns -EAGAIN, how should we handle this case?
> retry it repeatedly?
Again, this is a question more about the implementation of the calling
code and what it wants to do. EAGAIN is specifically related to the
DLM_LKF_NOQUEUE flag.
next prev parent reply other threads:[~2021-08-16 14:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-11 10:38 [Cluster-devel] Why does dlm_lock function fails when downconvert a dlm lock? Gang He
2021-08-11 20:35 ` Alexander Aring
2021-08-12 5:44 ` Gang He
2021-08-12 17:45 ` David Teigland
2021-08-13 6:49 ` Gang He
2021-08-16 14:41 ` David Teigland [this message]
2021-08-16 14:50 ` David Teigland
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=20210816144118.GB23630@redhat.com \
--to=teigland@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.