From owner-freebsd-current Wed Jan 8 12:36:15 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id MAA27848 for current-outgoing; Wed, 8 Jan 1997 12:36:15 -0800 (PST) Received: from spinner.DIALix.COM (root@spinner.DIALix.COM [192.203.228.67]) by freefall.freebsd.org (8.8.4/8.8.4) with ESMTP id MAA27843 for ; Wed, 8 Jan 1997 12:36:10 -0800 (PST) Received: from spinner.DIALix.COM (peter@localhost.DIALix.oz.au [127.0.0.1]) by spinner.DIALix.COM (8.8.4/8.8.4) with ESMTP id EAA06856; Thu, 9 Jan 1997 04:34:35 +0800 (WST) Message-Id: <199701082034.EAA06856@spinner.DIALix.COM> X-Mailer: exmh version 2.0beta 12/23/96 To: Bill Paul cc: grog@lemis.de, current@freebsd.org Subject: Re: What's happened to nfsd and mountd? In-reply-to: Your message of "Wed, 08 Jan 1997 15:06:21 EST." <199701082006.PAA24840@skynet.ctr.columbia.edu> Date: Thu, 09 Jan 1997 04:34:34 +0800 From: Peter Wemm Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk 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