Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Jan 1997 04:34:34 +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:  <199701082034.EAA06856@spinner.DIALix.COM>
In-Reply-To: Your message of "Wed, 08 Jan 1997 15:06:21 EST." <199701082006.PAA24840@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, Peter Wemm had 
> to walk into mine and say:
> 
> [nfsd/mountd are fubared]
> 
> > > It's most likely something in the RPC library in libc, not in the program
    s.
> > 
> > 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.
> 
> I would be more inclined to check pmap_set() or get_myaddress(). (I think
> you did frob get_myaddress().)

Yes, but nothing that is likely to cause this problem.  Before, it used to 
get the address of the first interface, which was a bit non-determinate.  
It could either be a loopback or real interface.  The change was to make 
it return a "real" address always, but if none exist, it falls back to a 
loopback address.

get_myaddress() copies the entire sockaddr_in out from the SIOCGIFCONF 
data.  Perhaps something is getting spammed there?  pmap_set() uses that 
to create the address for the udp transport.

For what it's worth, nfsd/mountd work for me.  I just did a 'make world' 
and restarted all my rpc/yp/nfs*/etc and it seems to work fine still.  I 
have not yet booted a new kernel after the if.h/if_var.h/etc changes from 
a little while back.

>     It would also help if we knew if these people
> are doing funky things with virtual interfaces or multihomed hosts. (This
> information is important people! When you describe a problem, you should
> go into _excrutiating_ detail. What may seem unimportant to you may speak
> volumes to us.)

Agreed.. an 'ifconfig -a' would be useful.

Cheers,
-Peter





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701082034.EAA06856>