All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Dickson <SteveD@redhat.com>
To: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: linux-nfs@vger.kernel.org
Subject: Re: [PATCH] SUNRPC: Don't create a gss auth cache unless rpc.gssd is running
Date: Mon, 10 Feb 2014 18:01:32 -0500	[thread overview]
Message-ID: <52F95A4C.7040408@RedHat.com> (raw)
In-Reply-To: <1392068887-25091-1-git-send-email-trond.myklebust@primarydata.com>



On 02/10/2014 04:48 PM, Trond Myklebust wrote:
> An infinite loop is caused when nfs4_establish_lease() fails
> with -EACCES. This causes nfs4_handle_reclaim_lease_error()
> to sleep a bit and resets the NFS4CLNT_LEASE_EXPIRED bit.
> This in turn causes nfs4_state_manager() to try and
> reestablished the lease, again, again, again...
> 
> The problem is a valid RPCSEC_GSS client is being created when
> rpc.gssd is not running.
> 
> Link: http://lkml.kernel.org/r/1392066375-16502-1-git-send-email-steved@redhat.com
> Fixes: 0ea9de0ea6a4 (sunrpc: turn warn_gssd() log message into a dprintk())
> Reported-by: Steve Dickson <steved@redhat.com>
> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
> ---
>  net/sunrpc/auth_gss/auth_gss.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
> index 6c0513a7f992..44a61e8fda6f 100644
> --- a/net/sunrpc/auth_gss/auth_gss.c
> +++ b/net/sunrpc/auth_gss/auth_gss.c
> @@ -991,6 +991,8 @@ gss_create_new(struct rpc_auth_create_args *args, struct rpc_clnt *clnt)
>  	gss_auth->service = gss_pseudoflavor_to_service(gss_auth->mech, flavor);
>  	if (gss_auth->service == 0)
>  		goto err_put_mech;
> +	if (!gssd_running(gss_auth->net))
> +		goto err_put_mech;
>  	auth = &gss_auth->rpc_auth;
>  	auth->au_cslack = GSS_CRED_SLACK >> 2;
>  	auth->au_rslack = GSS_VERF_SLACK >> 2;
> 
Unfortunately I'm seeing the same loop but this time its with _nfs4_proc_exchange_id

Here is the trace point output:
  192.168.62.8-ma-20371 [000] .... 955443.604229: nfs4_exchange_id: error=-13 (EACCES) dstaddr=192.168.62.8

and here is the rpcdebug output:
[ 2782.341981] NFS call  exchange_id auth=RPCSEC_GSS, 'Linux NFSv4.1 <client>'
[ 2782.360540] NFS reply exchange_id: -13

All three mounts (v4.0, v4.1, v4.2) are hung...

Looking into it...

steved.



  reply	other threads:[~2014-02-10 23:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-10 21:06 [PATCH] NFSv4: Infinite loop in lease recovery when rpc.gssd is not running Steve Dickson
2014-02-10 21:10 ` Trond Myklebust
2014-02-10 21:48   ` [PATCH] SUNRPC: Don't create a gss auth cache unless rpc.gssd is running Trond Myklebust
2014-02-10 23:01     ` Steve Dickson [this message]
2014-02-11 11:26       ` Steve Dickson

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=52F95A4C.7040408@RedHat.com \
    --to=steved@redhat.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@primarydata.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.