Subject: killer death packet
To: None <tech-net@netbsd.org>
From: Chris Jones <chris@cjones.org>
List: tech-net
Date: 06/18/2003 14:22:59
This has been bugging me for a while, and I've finally isolated the
cause of my IMAP server hanging. The server is running NetBSD/i386 1.6,
with cyrus-imapd from pkgsrc. It has a firewall in front of it, also
running NetBSD/i386 1.6, which is tunnelling traffic via IPSEC with a
machine at a remote office.
If a machine from the remote office connects to the IMAP port, the
service hangs. Specifically, the /usr/local/cyrus/bin/master process
never returns from its select(2) call. The select is on a bunch of
fd's, including the socket that's listening for new connections on the
IMAP port. I can kill the master process and restart it, and everything
works fine. (Until somebody tries to connect from the remote office again.)
Here's tcpdump output from a bad packet. My feeble knowledge of TCP
says it looks fine:
gamera# tcpdump -vv -l -x host sedc.sri.com
tcpdump: listening on fxp0
13:50:39.727262 sedc.SRI.COM.42989 > gamera.mt.sri.com.imap: S [tcp sum
ok] 1409559804:1409559804(0) win 24820 <nop,nop,sackOK,mss 1460> (ttl
60, id 49965, len 48)
4500 0030 c32d 0000 3c06 f876 8012 2815
ce7f 4c7d a7ed 008f 5404 2cfc 0000 0000
7002 60f4 358a 0000 0101 0402 0204 05b4
Any insight into the cause of this problem would be much appreciated.
Chris
--
Chris Jones chris@cjones.org www.cjones.org