Date: Thu, 09 Jan 1997 00:08:22 +0800 From: Peter Wemm <peter@spinner.DIALix.COM> To: Bill Paul <wpaul@skynet.ctr.columbia.edu> Cc: grog@lemis.de, current@freebsd.org Subject: Re: What's happened to nfsd and mountd? Message-ID: <199701081608.AAA24235@spinner.DIALix.COM> In-Reply-To: Your message of "Wed, 08 Jan 1997 09:40:51 EST." <199701081440.JAA24321@skynet.ctr.columbia.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
Bill Paul wrote:
> Of all the gin joints in all the towns in all the world, grog@lemis.de
> had to walk into mine and say:
>
> > For the past 10 days or so, I haven't been able to build functional
> > nfsd and mountd: they die with messages like these:
> >
> > Jan 8 11:34:38 freebie mountd[1215]: Can't register mount
> > Jan 8 11:35:16 freebie nfsd:[1261]: can't register with udp portmap
>
> I'm starting to think that this may be due to some changes Peter Wemm
> made to the RPC library a short while back (maybe ten days -- not exactly
> sure, but it sounds about right). Either that or somebody frobbed some
> headers somewhere that broke the library.
Hmm..
> > ktraces show that in each case a sendto fails:
> >
> > 577 mountd CALL sendto(0x5,0x465f0,0x38,0,0x46408,0x10)
> > 577 mountd RET sendto -1 errno 47 Address family not supported by pr
otocol family
> > 577 mountd CALL write(0x2,0xefbfcb98,0x67)
> > 577 mountd GIO fd 2 wrote 103 bytes
> > "Cannot register service: RPC: Unable to send; errno = Address famil
y not supported by protocol family
> >
> > "
> > (don't ask me where stderr goes--I didn't see this message anywhere
> > when I ran mountd).
> >
> > This is apparently not a kernel problem: I can start the versions I
> > compiled a month ago and which I still have on my laptop, and they run
> > fine. It's rather puzzling, though, because the source files haven't
> > changed in that time. I can only assume a library problem somewhere,
> > but I don't have the time to follow it up.
>
> It's most likely something in the RPC library in libc, not in the programs.
The first thing that springs to mind is that it looks like it's happening
here in clnt_udp.c:
if (sendto(cu->cu_sock, cu->cu_outbuf, outlen, 0,
(struct sockaddr *)&(cu->cu_raddr), cu->cu_rlen) != outlen) {
cu->cu_error.re_errno = errno;
if (fds != &readfds)
free(fds);
return (cu->cu_error.re_status = RPC_CANTSEND);
}
In this case, it looks to me like the socket is created and bound
correctly, Hmm, I'll dig into it some more.
> Rrrrr.... excuse me while I go fill up the gas tank on my LART.
Do I want to know what a LART is, or not? :-]
> -Bill
Cheers,
-Peter
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701081608.AAA24235>
