From mboxrd@z Thu Jan 1 00:00:00 1970 From: Willy Tarreau Subject: Re: TCP SACK issue, hung connection, tcpdump included Date: Sun, 29 Jul 2007 08:45:11 +0200 Message-ID: <20070729064511.GA18718@1wt.eu> References: <46AC2CBE.5010500@netbauds.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org To: "Darryl L. Miles" Return-path: Content-Disposition: inline In-Reply-To: <46AC2CBE.5010500@netbauds.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org Hi, [CCing netdev as it's where people competent on the subject are] On Sun, Jul 29, 2007 at 06:59:26AM +0100, Darryl L. Miles wrote: > CLIENT = Linux 2.6.20.1-smp [Customer build] > SERVER = Linux 2.6.9-55.ELsmp [Red Hat Enterprise Linux AS release 4 > (Nahant Update 5)] > > The problems start around time index 09:21:39.860302 when the CLIENT issues > a TCP packet with SACK option set (seemingly for a data segment which has > already been seen) from that point on the connection hangs. Where was the capture taken ? on CLIENT or on SERVER (I suspect client from the timers) ? A possible, but very unlikely reason would be an MTU limitation somewhere, because the segment which never gets correctly ACKed is also the largest one in this trace. It would be strange as the SACKs are send immediately after, but it should be something to consider anyway. Also, if everything is right with the packets on the server side, then it would means that it's the RHEL kernel which is buggy (which does not mean that the same bug does not exist in mainline). Regards, Willy > Full dump available via email. > > > 09:12:13.444999 IP CLIENT.50727 > SERVER.ssh: S 2919512080:2919512080(0) > win 5840 > 09:12:13.535643 IP SERVER.ssh > CLIENT.50727: S 492909547:492909547(0) ack > 2919512081 win 5792 2> > 09:12:13.535717 IP CLIENT.50727 > SERVER.ssh: . ack 1 win 46 > > 09:12:13.665481 IP SERVER.ssh > CLIENT.50727: P 1:24(23) ack 1 win 1448 > > 09:12:13.665895 IP CLIENT.50727 > SERVER.ssh: . ack 24 win 46 > > 09:12:13.666044 IP CLIENT.50727 > SERVER.ssh: P 1:23(22) ack 24 win 46 > > 09:12:13.776318 IP SERVER.ssh > CLIENT.50727: . ack 23 win 1448 > > > ...SNIPPED SUCCESSFUL TRAFFIC... > > 09:21:39.490740 IP SERVER.ssh > CLIENT.50727: P 18200:18464(264) ack 2991 > win 2728 > 09:21:39.490775 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:21:39.860245 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:21:39.860302 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:21:40.453440 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:21:40.453495 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:21:41.641821 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:21:41.641938 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:21:44.017552 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:21:44.017622 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:21:48.770051 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:21:48.770099 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:21:58.274061 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:21:58.274180 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:22:17.282035 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:22:17.282153 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:22:55.298955 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:22:55.299023 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:24:11.329853 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:24:11.329923 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:26:11.331578 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:26:11.331699 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:26:13.011885 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:26:13.309032 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:26:13.901048 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:26:15.085103 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:26:17.453195 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:26:22.189378 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:26:31.661696 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:26:50.610374 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:27:28.499729 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:28:11.331256 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:28:11.331354 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:28:44.286495 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:30:11.330959 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:30:11.331074 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:30:44.298756 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:32:11.331661 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:32:11.331727 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:32:44.311051 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:34:11.332375 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:34:11.332447 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:34:44.323298 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:36:11.332073 IP SERVER.ssh > CLIENT.50727: . 12408:13856(1448) ack 2991 > win 2728 > 09:36:11.332166 IP CLIENT.50727 > SERVER.ssh: . ack 18464 win 378 > > 09:36:44.335591 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:38:44.351950 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > 09:40:44.368172 IP CLIENT.50727 > SERVER.ssh: P 2991:3039(48) ack 18464 win > 378 > > At the end of the dump here the connection is dropped by the client side. > > > Darryl > > > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/