From: Jeff Layton <jlayton@redhat.com>
To: John Hughes <john@calvaedi.com>
Cc: Trond Myklebust <trond.myklebust@netapp.com>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Don't hang user processes if Kerberos ticket for nfs4 mount expires
Date: Wed, 16 Nov 2011 14:47:18 -0500 [thread overview]
Message-ID: <20111116144718.78b2e288@corrin.poochiereds.net> (raw)
In-Reply-To: <4EC3FD8B.6000705@calvaedi.com>
On Wed, 16 Nov 2011 19:14:35 +0100
John Hughes <john@calvaedi.com> wrote:
> With recent kernels if the Kerberos ticket for a nfs4 mount expires any
> user process trying to access the mount hangs until a new ticket is
> obtained. Simultaneously a (luckily rate-limited, but still seemingly
> endless) stream of "Error: state manager encountered RPCSEC_GSS session
> expired against NFSv4 server" messages is written to the kernel log.
>
> In a common setup with user home directories nfs4 mounted on
> workstations one of the processes that is likely to hang is the
> screen-unlock function which would normally (via pam_krb5 or similar)
> get the new ticket.
>
> In older kernels the EKEYEXPIRED error would be passed to userland,
> which would usualy just give up.
>
> This patch restores the old behavior, which makes nfs4 mounted home
> directories usable for me.
>
Uhhh, no...EKEYEXPIRED was never passed to userland. The patchset that
added EKEYEXPIRED returns in this codepath also added the code to make
it hang.
This not a bug, or at least it's intentional behavior. When a krb5
ticket expires, we *want* the process to hang. Otherwise, people with
long running jobs will often find that their jobs error out
inexplicably when their ticket expires.
The patches that introduced this behavior went into 2.6.34. See the
commits around 2c64348 (and some preceding ones in the rpc layer).
If you want to fix this use case, you'll need to come up with a scheme
that doesn't regress this behavior. I think that you'll really need to
ensure that whatever process you expect to re-fetch your TGT is not
dependent on accessing kerberized nfs mounts. That really seems like an
untenable chicken and egg situation.
--
Jeff Layton <jlayton@redhat.com>
next prev parent reply other threads:[~2011-11-16 19:46 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-16 18:14 [PATCH] Don't hang user processes if Kerberos ticket for nfs4 mount expires John Hughes
2011-11-16 19:47 ` Jeff Layton [this message]
2011-11-16 23:44 ` Jim Rees
2011-11-17 1:31 ` Jeff Layton
2011-11-17 1:38 ` Jeff Layton
2011-11-17 11:05 ` John Hughes
2011-11-17 13:13 ` John Hughes
2011-11-17 21:46 ` Jeff Layton
2011-11-18 1:51 ` Jim Rees
2011-11-18 2:03 ` Jeff Layton
[not found] ` <4EC62325.1060009@Calva.COM>
2011-11-18 12:50 ` Jim Rees
2011-11-17 1:46 ` Matt W. Benjamin
2011-11-17 9:37 ` John Hughes
-- strict thread matches above, loose matches on Subject: below --
2011-11-18 17:16 Myklebust, Trond
2011-11-18 17:54 ` Jim Rees
2011-11-18 18:23 ` Trond Myklebust
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=20111116144718.78b2e288@corrin.poochiereds.net \
--to=jlayton@redhat.com \
--cc=john@calvaedi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=trond.myklebust@netapp.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox