All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <trondmy@hammerspace.com>
To: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
	"chuck.lever@oracle.com" <chuck.lever@oracle.com>
Subject: Re: [PATCH RFC 2/4] NFS: Unset RPC_TASK_NO_RETRANS_TIMEOUT for session/clientid destruction
Date: Wed, 14 Jul 2021 15:59:16 +0000	[thread overview]
Message-ID: <f0081f402653adf5113febf9b8c5aad04b7f1f61.camel@hammerspace.com> (raw)
In-Reply-To: <162627782362.1294.9395366920293772038.stgit@manet.1015granger.net>

On Wed, 2021-07-14 at 11:50 -0400, Chuck Lever wrote:
> In some rare failure modes, the server is actually reading the
> transport, but then just dropping the requests on the floor.
> TCP_USER_TIMEOUT cannot detect that case.
> 
> Prevent such a stuck server from pinning client resources
> indefinitely by ensuring that session and client ID clean-up can
> time out even if the connection is still operational.
> 
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>  fs/nfs/nfs4client.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
> index 28431acd1230..c5032f784ac0 100644
> --- a/fs/nfs/nfs4client.c
> +++ b/fs/nfs/nfs4client.c
> @@ -281,6 +281,7 @@ static void nfs4_destroy_callback(struct
> nfs_client *clp)
>  
>  static void nfs4_shutdown_client(struct nfs_client *clp)
>  {
> +       clp->cl_rpcclient->cl_noretranstimeo = 0;
>         if (__test_and_clear_bit(NFS_CS_RENEWD, &clp->cl_res_state))
>                 nfs4_kill_renewd(clp);
>         clp->cl_mvops->shutdown_client(clp);
> 
> 

I can't see how this will help. Again, I suggest we rather turn off the
retransmission default for the RPC calls where the server can drop
stuff on the floor. That's really only the RPCSEC_GSS control
messages. 

Anything else is covered by the NFSv4 blanket ban on dropping RPC
calls.

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com



  reply	other threads:[~2021-07-14 15:59 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-14 15:50 [PATCH RFC 0/4] Ensure RPC_TASK_NORTO is disabled for select operations Chuck Lever
2021-07-14 15:50 ` [PATCH RFC 1/4] NFS: Unset RPC_TASK_NO_RETRANS_TIMEOUT for async lease renewal Chuck Lever
2021-07-14 16:00   ` Trond Myklebust
2021-07-14 17:53     ` Chuck Lever III
2021-07-14 18:26       ` Trond Myklebust
2021-07-14 15:50 ` [PATCH RFC 2/4] NFS: Unset RPC_TASK_NO_RETRANS_TIMEOUT for session/clientid destruction Chuck Lever
2021-07-14 15:59   ` Trond Myklebust [this message]
2021-07-14 15:50 ` [PATCH RFC 3/4] SUNRPC: Refactor rpc_ping() Chuck Lever
2021-07-14 15:50 ` [PATCH RFC 4/4] SUNRPC: Unset RPC_TASK_NO_RETRANS_TIMEOUT for NULL RPCs Chuck Lever

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=f0081f402653adf5113febf9b8c5aad04b7f1f61.camel@hammerspace.com \
    --to=trondmy@hammerspace.com \
    --cc=chuck.lever@oracle.com \
    --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 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.