rpc.idmapd hangs after 'bad type in upcall'
Jeff Layton
jlayton at redhat.com
Thu May 1 15:55:41 EDT 2008
On Thu, 1 May 2008 15:22:58 -0400
"Kevin Coffman" <kwc at citi.umich.edu> wrote:
> On Thu, May 1, 2008 at 2:23 PM, Stirling, Ashley <ashley at mun.ca> wrote:
> >
> > We have recently been experiencing a problem where idmapd will log a 'bad
> > type in upcall' message and thereafter the nfs server will respond to all
> > requests with NFS4ERR_DELAY. Restarting rpc.idmapd returns nfs to a
> > functioning state.
> >
> > The nfs server is running RedHat Enterprise Linux 4:
> > kernel 2.6.9-42
> > nfs-utils 1.0.6-80
> >
> > Attached are:
> > - the syslogs around the time of the most recent hang
> > - output from strace of the idmapd daemon
> > - packet capture around the time of idmapd hanging
> > (user names are blanked out to comply with our privacy policy)
> >
> >
> > I don't really know what to look for in the attached logs. Any assistance
> > or direction you could provide would be greatly appreciated.
> >
> > Thanks,
> > - Ash
>
> This version of idmapd doesn't properly handle a zero-length read. I
> see this was fixed in nfs-utils-1.0.8. I think the kernel is stuck
> waiting for an answer, and idmapd is not sending one. I don't know if
> there is a kernel change that doesn't send an empty request.
>
> I'm not sure what your options are for upgrading.
>
> Below is the part of the nfs-utils patch to idmapd to handle the
> zero-length read:
>
> ---------------------------- utils/idmapd/idmapd.c ----------------------------
> index 5712edb..158feaf 100644
> @@ -547,9 +547,10 @@ nfsdcb(int fd, short which, void *data)
> if (which != EV_READ)
> goto out;
>
> - if ((len = read(ic->ic_fd, buf, sizeof(buf))) == -1) {
> + if ((len = read(ic->ic_fd, buf, sizeof(buf))) <= 0) {
> idmapd_warnx("nfsdcb: read(%s) failed: errno %d (%s)",
> - ic->ic_path, errno, strerror(errno));
> + ic->ic_path, len?errno:0,
> + len?strerror(errno):"End of File");
> goto out;
> }
Thanks Kevin. Ashley, I recommend opening a BZ (or even better, a RH
support case) and we'll see if we can get that fixed...
Thanks,
--
Jeff Layton <jlayton at redhat.com>
More information about the NFSv4
mailing list