Date: Sun, 14 Apr 2002 17:19:33 -0500 From: Gary Mills <[EMAIL PROTECTED]> Cc: [EMAIL PROTECTED]
On Sun, Apr 14, 2002 at 04:54:35PM -0400, Lawrence Greenfield wrote: > the Cyrus software will never interrupt a TCP send to obey the > timeouts; this guy isn't responding and a TCP send could take up to a > couple of hours to time out I think. After 12 days, I'd say it's not going to time out. Presumably, the PC was rebooted in the middle of the send. The user will be calling our support desk to report that her POP session is locked. Should I be running a cron command to kill old pop3d processes? I had hoped that the daemon would look after this case. Hmm. So there's clearly some sort of problem in the socket implementation then. If the packet can't be delivered successfully, the write() system call is suppose to return EPIPE: The communications protocols which implement a SOCK_STREAM ensure that data is not lost or duplicated. If a piece of data for which the peer protocol has buffer space cannot be successfully transmitted within a reasonable length of time, then the connection is considered to be dead. When SO_KEEPALIVE is enabled on the socket the protocol checks in a protocol-specific manner if the other end is still alive. A SIGPIPE signal is raised if a process sends or receives on a broken stream; this causes naive processes, which do not handle the signal, to exit. SOCK_SEQPACKET sockets employ the I guess I'd like to know if any data is trying to be transmitted to the client (use "tcpdump host <clientname>" on the server for a couple of hours?). I don't consider 12 days a reasonable amount of time to have to wait. Larry