Date: Thu, 03 Feb 2000 22:17:31 -0800 From: Gene Kan <genehkan@scam.xcf.berkeley.edu> To: freebsd-net@freebsd.org Subject: Non-blocking sockets and network outages Message-ID: <20000204061731.85976.qmail@scam.xcf.berkeley.edu>
next in thread | raw e-mail | index | archive | help
I've got an interesting problem involving non-blocking sockets and network outages. In all cases, SO_KEEPALIVE is on, and net.inet.tcp.always_keepalive: 1. The problem manifests itself when there is a net partition, the other endpoint loses power, or something of that sort. Basically, when a connection dies without first notifying with RST or FIN. If I mark a socket for reading, the fd will just never become active, and I have an ESTABLISHED connection (verified with netstat) forever. If I do a non-blocking write, the write will return -1 with errno==EAGAIN. Obviously, since it just looks like the other side isn't slurping up the data because I'm not getting a window update. Finally...I can't figure out why the keepalives aren't taking care of all this for me, and discovering the connections are dead. I waited for hours, which surely should have been more than all timeouts... Thanks for any help. Gene To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000204061731.85976.qmail>