Skip site navigation (1)Skip section navigation (2)
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>