From: Trond Myklebust <trondmy@hammerspace.com>
To: "dai.ngo@oracle.com" <dai.ngo@oracle.com>,
"chuck.lever@oracle.com" <chuck.lever@oracle.com>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
"jlayton@kernel.org" <jlayton@kernel.org>
Subject: Re: [PATCH] SUNRPC: increase max timeout for rebind to handle NFS server restart
Date: Tue, 18 Apr 2023 16:02:31 +0000 [thread overview]
Message-ID: <d0f7600702ba073aad1056fbf93306adccf2ae9c.camel@hammerspace.com> (raw)
In-Reply-To: <ce2dbad5-cbbf-4173-0eb2-5113227837b5@oracle.com>
On Mon, 2023-04-17 at 18:04 -0700, dai.ngo@oracle.com wrote:
>
> On 4/17/23 5:23 PM, Trond Myklebust wrote:
> > task->tk_rebind_retry is _only_ changed if the rpcbind server is up
> > and
> > running, and returns an empty reply because the service we're
> > looking
> > up isn't registered.
> > task->tk_rebind_retry isn't changed on any request timeout. It
> > isn't
> > changed on any connection failure. It isn't changed by any other
> > code
> > path in the RPC client.
> >
> > So none of this applies to the case of a dead server.
>
> Sorry if I'm not clear. What I meant by a dead server is a dead NFS
> server and not rpcbind service. So in this case we get EACCES from
> rpcbind and we retry.
>
> >
> > It applies to the case of a live server, where rpcbind is running
> > and
> > accessible to the client and where, for some reason or another, it
> > is
> > taking an exceptionally long time to register the service we are
> > looking up the port for (either NLM or NFSv3).
>
> Yes, this is the problem that I'm facing.
>
> >
> > So where are you seeing this process take 90 seconds? Why do we
> > need to
> > wait for that long before we can finally conclude that the
> > particular
> > service in question is not going to come back up?
>
> 90 secs wait is for when the NFS server never come up and we keep
> getting
> EACCES from rpcbind for this whole time.
>
OK, so the 90s is completely arbitrary then, and was only chosen
because it fits your particular server?
To me, that appears to invalidate the entire premise of commit
0b760113a3a1 that we can rely on rpcbind to tell us if the service is
present or not.
In that case, I'd rather rip out the task->tk_rebind_retry counter, and
just rely on standard hard/soft task semantics.
--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com
next prev parent reply other threads:[~2023-04-18 16:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-08 3:30 [PATCH] SUNRPC: increase max timeout for rebind to handle NFS server restart Dai Ngo
2023-04-12 17:50 ` Jeff Layton
2023-04-12 17:55 ` Chuck Lever III
2023-04-12 18:09 ` dai.ngo
2023-04-17 20:49 ` Trond Myklebust
2023-04-17 21:41 ` Chuck Lever III
2023-04-17 21:48 ` Trond Myklebust
2023-04-17 21:51 ` dai.ngo
2023-04-17 21:53 ` Trond Myklebust
2023-04-17 23:14 ` dai.ngo
2023-04-18 0:23 ` Trond Myklebust
2023-04-18 1:04 ` dai.ngo
2023-04-18 16:02 ` Trond Myklebust [this message]
2023-04-18 17:40 ` dai.ngo
2023-04-17 21:53 ` Chuck Lever III
2023-04-17 22:10 ` Trond Myklebust
2023-04-18 0:06 ` Chuck Lever III
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=d0f7600702ba073aad1056fbf93306adccf2ae9c.camel@hammerspace.com \
--to=trondmy@hammerspace.com \
--cc=chuck.lever@oracle.com \
--cc=dai.ngo@oracle.com \
--cc=jlayton@kernel.org \
--cc=linux-nfs@vger.kernel.org \
/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