Re: [PATCH] NFS: Fix infinite loop in gss_create_upcall()

From: Trond Myklebust
Date: Tue Apr 12 2011 - 14:31:35 EST


On Tue, 2011-04-12 at 20:05 +0200, Jiri Slaby wrote:
> On 04/12/2011 07:41 PM, Bryan Schumaker wrote:
> > On 04/11/2011 05:08 PM, Jiri Slaby wrote:
> >>
> >> Sorry for an extra message. I've just found out that there appears
> >> messages in dmesg:
> >> [ 58.656048] RPC: AUTH_GSS upcall timed out.
> >> [ 58.656050] Please check user daemon is running.
> >> [ 88.656065] RPC: AUTH_GSS upcall timed out.
> >> [ 88.656068] Please check user daemon is running.
> >> [ 118.656077] RPC: AUTH_GSS upcall timed out.
> >> [ 118.656080] Please check user daemon is running.
> >> [ 148.656049] RPC: AUTH_GSS upcall timed out.
> >> [ 148.656052] Please check user daemon is running.
> >> [ 178.656046] RPC: AUTH_GSS upcall timed out.
> >> [ 178.656049] Please check user daemon is running.
> >>
> >>
> >> I instrumented the code and it's stuck with trying RPC_AUTH_GSS_KRB5.
> >>
> >> I don't use GSS at all.
> >>
> >> regards,
> >
> > Does this patch help?
> >
> > - Bryan
> >
> >
> >
> > There can be an infinite loop if gss_create_upcall() is called without
> > the userspace program running. To prevent this, we return -EACCES if
> > we notice that pipe_version hasn't changed (indicating that the pipe
> > has not been opened).
>
> Yes, it fixes the problem. But it waits 15s before it times out. This is
> inacceptable for automounted NFS dirs.

I'm still confused as to why you are hitting it at all. In the normal
autonegotiation case, the client should be trying to use AUTH_SYS first
and then trying rpcsec_gss if and only if that fails.

Are you really exporting a filesystem using AUTH_NULL as the only
supported flavour?

--
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/