Date: Wed, 8 Jan 1997 22:49:01 +0100 (MET) From: grog@lemis.de To: peter@spinner.DIALix.COM (Peter Wemm) Cc: FreeBSD-current@FreeBSD.ORG (FreeBSD current users) Subject: Re: What's happened to nfsd and mountd? Message-ID: <199701082149.WAA07770@freebie.lemis.de> In-Reply-To: <199701082034.EAA06856@spinner.DIALix.COM> from Peter Wemm at "Jan 9, 97 04:34:34 am"
next in thread | previous in thread | raw e-mail | index | archive | help
Peter Wemm writes: > 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. Hmmm. I was going to complain about what Bill said, but now I'm not so sure... Yes, I may have a few more interfaces than most people. Let's see. tcpdump also goes for the first interface... === root@freebie (/dev/ttyp6) /var/spool/mqueue 69 -> tcpdump tcpdump: listening on ep0 Looks good to me. How do I find the interface that get_myaddress is attacking? > 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. Well, I didn't expect it to be broke for everybody, or somebody else would have complained first. >> 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. === root@freebie (/dev/ttyp6) /var/spool/mqueue 70 -> ifconfig -a lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 ep0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.109.197.137 netmask 0xffffff00 broadcast 192.109.197.255 ether 00:a0:24:37:0d:2b ipi0: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 192.109.197.137 --> 194.163.31.4 netmask 0xffffffc0 ipi1: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 192.109.197.137 --> 194.64.112.1 netmask 0xffffff00 ipi2: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 192.109.197.137 --> 194.163.31.129 netmask 0xffffffc0 ipi3: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 192.109.197.37 --> 192.109.197.38 netmask 0xffffff00 ipi4: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 192.109.197.148 --> 194.77.2.34 netmask 0xffffff00 ipi5: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 192.109.197.137 --> 194.163.31.1 netmask 0xffffffc0 ipi6: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 192.109.197.137 --> 192.129.52.242 netmask 0xffffff00 ipi7: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 ipi8: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 ipi9: flags=811<UP,POINTOPOINT,SIMPLEX> mtu 1500 inet 194.97.201.66 --> 194.97.201.9 netmask 0xffffff00 ipi10: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 ipi11: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 ipi12: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 ipi13: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 ipi14: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 ipi15: flags=810<POINTOPOINT,SIMPLEX> mtu 1500 tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552 ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 ppp1: flags=8010<POINTOPOINT,MULTICAST> mtu 1500 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet 127.0.0.1 netmask 0xff000000 Note that lp0 is the first interface. Currently it's not active, but I was using it a bit last month. The ipi<x>s are ISDN interfaces, and (with the exception of lo0, of course) I don't use the rest. Greg
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701082149.WAA07770>