On Fri, 14 Oct 2005, [EMAIL PROTECTED] wrote:

Nicolas KOWALSKI wrote:
Our FreeBSD 4.10 NFS server has some problems serving files by NFS on
TCP (no problem with UDP) when the Linux (2.6) or Solaris (5.9)
clients shut down in an unclean manner (power failure). When the clients try to mount the shares from the server after an
unclean shutdown, the mount process hang during several minutes (delay
is varying), then succeeds.

That is just a wild guess, but NFS mounting would happen always at the same
stage of the boot, so maybe with the same source port number and you could be
facing the problem that the connection is waiting for termination on the server
(close_wait or fin_wait or something)... Se source port in working example is
798 and source port in failing example is 799 certainly not random.

Olivier

The socket on the server would still be in the ESTABLISHED state, which is even worse than the close_wait or fin_wait states in this case. The SYN will be accepted if it's greater than the previous sequence number, so that's a 50% chance it'll work.

Assuming that port reuse is the problem, there is no quick fix for this, just resetting connections when a SYN comes in would be a really big security problem.

Actually, there may be a quick fix for this specific machine. If you set net.inet.tcp.keepidle to 1 minute (60*whatever kern.hz is), that'll cause keepalive packets to be sent every minute to an idle connection, rather than every 2 hours. That would kill the stuck connections much quicker.

However, it's also possible that this could cause problems in normal operation if keepalive packets cause problems. So, give it a shot, but be careful.

Mike "Silby" Silbersack
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to