Subject: Re: inetd / tftpd regression
To: None <current-users@netbsd.org>
From: Jukka Salmi <j+nbsd@2005.salmi.ch>
List: current-users
Date: 04/06/2005 23:31:00
Hmm, I just noticed this problem only exists whith a 3.99.3 kernel. When
using a 3.99.2 kernel (2005-03-29), everything works as expected...

What could be the culprit? Would it make sense to try sources just before
the yamt-km merge?

Jukka Salmi --> current-users (2005-04-06 23:11:39 +0200):
> Some more information:
> 
> I tried running inetd and tftpd from the netbsd-2 system on the current
> host - same behaviour as with current binaries, i.e. not working.
> 
> I'll try to describe the problem again:
> 
> $ sudo /usr/sbin/inetd -d
> ADD : tftp proto=udp, wait.max=1.40, user:group=root:(null) builtin=0 \
> server=/usr/libexec/tftpd policy=
> registered /usr/libexec/tftpd on 5
> 
> So far so good. Client starts PXE boot, gets an IP assigned by DHCP,
> and is directed to the TFTP server. Tcpdump on the TFTP server host
> shows:
> 
> 22:37:46.931471 IP (tos 0x0, ttl  20, id 4, offset 0, flags [none], \
> length: 71) 212.254.26.72.2071 > 212.254.26.77.69: [udp sum ok]  43 \
> RRQ "pxeboot_ia32_com0.bin" octet blksize 1456
> 
> and inetd prints:
> 
> someone wants tftp
> 19143 execl /usr/libexec/tftpd
> 
> but nothing else happens. The client resends this packet some times and
> finally times out.
> 
> But - and this is the really strange part, at least for me - if I
> interrupt and restart inetd while the client sends these tftp packets,
> it suddenly works:
> 
> $ sudo /usr/sbin/inetd -d 
> ADD : tftp proto=udp, wait.max=1.40, user:group=root:(null) builtin=0 \
> server=/usr/libexec/tftpd policy=
> registered /usr/libexec/tftpd on 5
> ----------[client starts booting now]----------
> someone wants tftp
> 20548 execl /usr/libexec/tftpd
> 
> On a second terminal, I see
> 
> 22:50:41.534617 IP (tos 0x0, ttl  20, id 2, offset 0, flags [none], \
> length: 66) 212.254.26.72.2070 > 212.254.26.77.69: [udp sum ok]  38 \
> RRQ "pxeboot_ia32_com0.bin" octet tsize 0 
> 22:50:41.637023 IP (tos 0x0, ttl  20, id 4, offset 0, flags [none], \
> length: 71) 212.254.26.72.2071 > 212.254.26.77.69: [udp sum ok]  43 \
> RRQ "pxeboot_ia32_com0.bin" octet blksize 1456
> 
> ...no response... until I restart inetd:
> 
> ^C$ sudo /usr/sbin/inetd -d 
> ADD : tftp proto=udp, wait.max=1.40, user:group=root:(null) builtin=0 \
> server=/usr/libexec/tftpd policy=
> registered /usr/libexec/tftpd on 5
> 
> As soon as the client starts his next attempt, inetd prints
> 
> someone wants tftp
> 8911 execl /usr/libexec/tftpd
> 
> again, but this time the client succeeds to fetch the kernel via NFS
> and boots fine.
> 
> So far, this is 100% reproducible.
> 
> Any hints what I could try next to solve this problem? Help is appreciated!
> 
> 
> Jukka
> 
> -- 
> bashian roulette:
> $ ((RANDOM%6)) || rm -rf ~

-- 
bashian roulette:
$ ((RANDOM%6)) || rm -rf ~