Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Oct 1997 19:50:01 -0700 (PDT)
From:      Matt Dillon <dillon@best.net>
To:        freebsd-bugs
Subject:   kern/4712
Message-ID:  <199710070250.TAA19621@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

The following reply was made to PR kern/4712; it has been noted by GNATS.

From: Matt Dillon <dillon@best.net>
To: freebsd-gnats-submit@freebsd.org
Cc:  Subject: kern/4712
Date: Mon, 6 Oct 1997 19:48:59 -0700 (PDT)

     I also reproduced the bug with a smaller window size, which I include
     at the very end.   See notes in section 3 below.
 
     Section I:	prior to Bill Fenner's quick patch to me
     Section II:	after Bill Fenner's quick patch to me (bug no longer exists)
     Section III: additional test done prior to Bill Fenner's patch.
 
     The test consisted of a 'telnet -d www.erols.com 80' and a 'GET /'.
 
 					-Matt
 
 :Actually, although I didn't reproduce the hang, I did reproduce the
 :strangely-sized window locally and think I have a fix.  Try this and
 :see if it fixed your hang too.
 :
 :  Bill
 :
 :--- tcp_output.c.orig	Mon Oct  6 18:46:03 1997
 :...
 
     Matthew Dillon   Engineering, BEST Internet Communications, Inc.
 		    <dillon@best.net>
     [always include a portion of the original email in any response!]
 
 
 	BEFORE FIX
 
 
 19:36:03.170980 205.149.163.43.1025 > 205.252.116.242.80: S 10843074:10843074(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 107 0,nop,nop,ccnew 3> (DF) [tos 0x10]
 19:36:03.277683 205.252.116.242.80 > 205.149.163.43.1025: S 3478916915:3478916915(0) ack 10843075 win 31744 <mss 1460>
 19:36:03.282294 205.149.163.43.1025 > 205.252.116.242.80: . ack 1 win 164 (DF) [tos 0x10]
 19:36:05.705198 205.149.163.43.1025 > 205.252.116.242.80: P 1:8(7) ack 1 win 164 (DF) [tos 0x10]
 19:36:05.847542 205.252.116.242.80 > 205.149.163.43.1025: . 1:165(164) ack 8 win 31744 (DF) [tos 0x10]
 19:36:05.982352 205.149.163.43.1025 > 205.252.116.242.80: . ack 165 win 0 (DF) [tos 0x10]
 19:36:07.302774 205.252.116.242.80 > 205.149.163.43.1025: . ack 8 win 31744 [tos 0x10]
 19:36:07.307393 205.149.163.43.1025 > 205.252.116.242.80: . ack 165 win 0 (DF) [tos 0x10]
 19:36:09.845744 205.252.116.242.80 > 205.149.163.43.1025: . ack 8 win 31744 [tos 0x10]
 19:36:09.850396 205.149.163.43.1025 > 205.252.116.242.80: . ack 165 win 0 (DF) [tos 0x10]
 19:36:14.809946 205.252.116.242.80 > 205.149.163.43.1025: . ack 8 win 31744 [tos 0x10]
 19:36:14.814576 205.149.163.43.1025 > 205.252.116.242.80: . ack 165 win 0 (DF) [tos 0x10]
 19:36:17.329149 205.149.163.43.1025 > 205.252.116.242.80: P 8:10(2) ack 165 win 0 (DF) [tos 0x10]
 19:36:17.448915 205.252.116.242.80 > 205.149.163.43.1025: R 3478917080:3478917080(0) win 0
 MARK
 Oct  6 19:36:03 flash /kernel: 0xf201d400 SYN_SENT:output [a573c2..a573de)@0, urp=0<SYN> -> SYN_SENT
 Oct  6 19:36:03 flash /kernel: 	rcv_(nxt,wnd,up) (0,0,0) snd_(una,nxt,max) (a573c2,a573c3,a573c3)
 Oct  6 19:36:03 flash /kernel: 	snd_(wl1,wl2,wnd) (0,0,0)
 Oct  6 19:36:03 flash /kernel: 0xf201d400 CLOSED:user CONNECT -> SYN_SENT
 Oct  6 19:36:03 flash /kernel: 	rcv_(nxt,wnd,up) (0,0,0) snd_(una,nxt,max) (a573c2,a573c3,a573c3)
 Oct  6 19:36:03 flash /kernel: 	snd_(wl1,wl2,wnd) (0,0,0)
 Oct  6 19:36:03 flash /kernel: 0xf201d400 SYN_SENT:input cf5c0f33@a573c3, urp=0<SYN,ACK> -> ESTABLISHED
 Oct  6 19:36:03 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0f34,100a4,cf5c0f34) snd_(una,nxt,max) (a573c3,a573c3,a573c3)
 Oct  6 19:36:03 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0f34,a573c3,7c00)
 Oct  6 19:36:03 flash /kernel: 0xf201d400 ESTABLISHED:output a573c3@cf5c0f34, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:03 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0f34,100a4,cf5c0f34) snd_(una,nxt,max) (a573c3,a573c3,a573c3)
 Oct  6 19:36:03 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0f34,a573c3,7c00)
 Oct  6 19:36:05 flash /kernel: 0xf201d400 ESTABLISHED:output [a573c3..a573ca)@cf5c0f34, urp=0<ACK,PUSH> -> ESTABLISHED
 Oct  6 19:36:05 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0f34,100a4,cf5c0f34) snd_(una,nxt,max) (a573c3,a573ca,a573ca)
 Oct  6 19:36:05 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0f34,a573c3,7c00)
 Oct  6 19:36:05 flash /kernel: 0xf201d400 ESTABLISHED:user SEND -> ESTABLISHED
 Oct  6 19:36:05 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0f34,100a4,cf5c0f34) snd_(una,nxt,max) (a573c3,a573ca,a573ca)
 Oct  6 19:36:05 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0f34,a573c3,7c00)
 Oct  6 19:36:05 flash /kernel: 0xf201d400 ESTABLISHED:input [cf5c0f34..cf5c0fd8)@a573ca, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:05 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0f34) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:05 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0f34,a573ca,7c00)
 Oct  6 19:36:05 flash /kernel: 0xf201d400 ESTABLISHED:user RCVD -> ESTABLISHED
 Oct  6 19:36:05 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0f34) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:05 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0f34,a573ca,7c00)
 Oct  6 19:36:05 flash /kernel: 0xf201d400 ESTABLISHED:output a573ca@cf5c0fd8, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:05 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0f34) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:05 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0f34,a573ca,7c00)
 Oct  6 19:36:07 flash /kernel: 0xf201d400 ESTABLISHED:input cf5c0fd7@a573ca, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:07 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:07 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:07 flash /kernel: 0xf201d400 ESTABLISHED:output a573ca@cf5c0fd8, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:07 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:07 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:09 flash /kernel: 0xf201d400 ESTABLISHED:input cf5c0fd7@a573ca, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:09 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:09 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:09 flash /kernel: 0xf201d400 ESTABLISHED:output a573ca@cf5c0fd8, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:09 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:09 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:14 flash /kernel: 0xf201d400 ESTABLISHED:input cf5c0fd7@a573ca, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:14 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:14 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:14 flash /kernel: 0xf201d400 ESTABLISHED:output a573ca@cf5c0fd8, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:36:14 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573ca,a573ca)
 Oct  6 19:36:14 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:17 flash /kernel: 0xf201d400 ESTABLISHED:output [a573ca..a573cc)@cf5c0fd8, urp=0<ACK,PUSH> -> ESTABLISHED
 
 
 	(somewhere around here I hit a key that generated a sigpipe since the
 	remote WWW server had shutdown it's input channel.
 
 Oct  6 19:36:17 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573cc,a573cc)
 Oct  6 19:36:17 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:17 flash /kernel: 0xf201d400 ESTABLISHED:user SEND -> ESTABLISHED
 Oct  6 19:36:17 flash /kernel: 	rcv_(nxt,wnd,up) (cf5c0fd8,100a4,cf5c0fd8) snd_(una,nxt,max) (a573ca,a573cc,a573cc)
 Oct  6 19:36:17 flash /kernel: 	snd_(wl1,wl2,wnd) (cf5c0fd7,a573ca,7c00)
 Oct  6 19:36:17 flash /kernel: ???????? drop cf5c0fd8@0, urp=0<RST>
 
 
 
 
 ------------------------------------------------------------------------------
 
 	AFTER FIX
 
 
 19:39:54.694887 205.149.163.43.1027 > 205.252.116.242.80: S 13189984:13189984(0) win 65535 <mss 1460,nop,wscale 1,nop,nop,timestamp 135 0,nop,nop,ccnew 5> (DF) [tos 0x10]
 19:39:54.846613 205.252.116.242.80 > 205.149.163.43.1027: S 447599909:447599909(0) ack 13189985 win 31744 <mss 1460>
 19:39:54.851251 205.149.163.43.1027 > 205.252.116.242.80: . ack 1 win 65535 (DF) [tos 0x10]
 19:39:56.047669 205.149.163.43.1027 > 205.252.116.242.80: P 1:8(7) ack 1 win 65535 (DF) [tos 0x10]
 19:39:56.177840 205.252.116.242.80 > 205.149.163.43.1027: . ack 8 win 31744 (DF) [tos 0x10]
 19:39:56.888723 205.252.116.242.80 > 205.149.163.43.1027: . 1:1461(1460) ack 8 win 31744 (DF) [tos 0x10]
 19:39:56.906924 205.252.116.242.80 > 205.149.163.43.1027: . 1461:2921(1460) ack 8 win 31744 (DF) [tos 0x10]
 19:39:56.972682 205.149.163.43.1027 > 205.252.116.242.80: . ack 2921 win 65535 (DF) [tos 0x10]
 19:39:57.089630 205.252.116.242.80 > 205.149.163.43.1027: . 2921:4381(1460) ack 8 win 31744 [tos 0x10]
 19:39:57.091183 205.252.116.242.80 > 205.149.163.43.1027: . 4381:5841(1460) ack 8 win 31744 [tos 0x10]
 19:39:57.111032 205.149.163.43.1027 > 205.252.116.242.80: . ack 5841 win 65535 (DF) [tos 0x10]
 19:39:57.240131 205.252.116.242.80 > 205.149.163.43.1027: P 7301:8193(892) ack 8 win 31744 (DF) [tos 0x10]
 19:39:57.244486 205.252.116.242.80 > 205.149.163.43.1027: . 8193:9653(1460) ack 8 win 31744 [tos 0x10]
 19:39:57.245430 205.149.163.43.1027 > 205.252.116.242.80: . ack 5841 win 65535 (DF) [tos 0x10]
 19:39:57.250404 205.149.163.43.1027 > 205.252.116.242.80: . ack 5841 win 65535 (DF) [tos 0x10]
 19:39:57.259879 205.252.116.242.80 > 205.149.163.43.1027: . 9653:11113(1460) ack 8 win 31744 [tos 0x10]
 19:39:57.265192 205.149.163.43.1027 > 205.252.116.242.80: . ack 5841 win 65535 (DF) [tos 0x10]
 19:39:57.384232 205.252.116.242.80 > 205.149.163.43.1027: . 5841:7301(1460) ack 8 win 31744 [tos 0x10]
 19:39:57.385627 205.252.116.242.80 > 205.149.163.43.1027: . 11113:12573(1460) ack 8 win 31744 [tos 0x10]
 19:39:57.389558 205.149.163.43.1027 > 205.252.116.242.80: . ack 11113 win 60428 (DF) [tos 0x10]
 19:39:57.399365 205.149.163.43.1027 > 205.252.116.242.80: . ack 12573 win 62040 (DF) [tos 0x10]
 19:39:57.412281 205.252.116.242.80 > 205.149.163.43.1027: . 12573:14033(1460) ack 8 win 31744 [tos 0x10]
 19:39:57.414337 205.149.163.43.1027 > 205.252.116.242.80: . ack 12573 win 65112 (DF) [tos 0x10]
 19:39:57.527026 205.252.116.242.80 > 205.149.163.43.1027: P 14033:14522(489) ack 8 win 31744 (DF) [tos 0x10]
 19:39:57.573919 205.149.163.43.1027 > 205.252.116.242.80: . ack 14522 win 65535 (DF) [tos 0x10]
 19:39:58.296191 205.252.116.242.80 > 205.149.163.43.1027: F 14522:14522(0) ack 8 win 31744 [tos 0x10]
 19:39:58.300873 205.149.163.43.1027 > 205.252.116.242.80: . ack 14523 win 65535 (DF) [tos 0x10]
 19:39:58.303496 205.149.163.43.1027 > 205.252.116.242.80: F 8:8(0) ack 14523 win 65535 (DF) [tos 0x10]
 19:39:58.413627 205.252.116.242.80 > 205.149.163.43.1027: . ack 9 win 31744 (DF) [tos 0x10]
 
 
 Oct  6 19:39:57 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0bf6,100a4,1aadebf6) snd_(una,nxt,max) (c94368,c94368,c94368)
 Oct  6 19:39:57 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aadfada,c94368,7c00)
 Oct  6 19:39:57 flash /kernel.tst: 0xf2021c00 ESTABLISHED:user RCVD -> ESTABLISHED
 Oct  6 19:39:57 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0ddf,100a4,1aadebf6) snd_(una,nxt,max) (c94368,c94368,c94368)
 Oct  6 19:39:57 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aadfada,c94368,7c00)
 Oct  6 19:39:57 flash /kernel.tst: 0xf2021c00 ESTABLISHED:output c94368@1aae0ddf, urp=0<ACK> -> ESTABLISHED
 Oct  6 19:39:57 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0ddf,100a4,1aadebf6) snd_(una,nxt,max) (c94368,c94368,c94368)
 Oct  6 19:39:57 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aadfada,c94368,7c00)
 Oct  6 19:39:58 flash /kernel.tst: 0xf2021c00 ESTABLISHED:input 1aae0ddf@c94368, urp=0<ACK,FIN> -> CLOSE_WAIT
 Oct  6 19:39:58 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0de0,100a4,1aae0ddf) snd_(una,nxt,max) (c94368,c94368,c94368)
 Oct  6 19:39:58 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aae0ddf,c94368,7c00)
 Oct  6 19:39:58 flash /kernel.tst: 0xf2021c00 CLOSE_WAIT:output c94368@1aae0de0, urp=0<ACK> -> CLOSE_WAIT
 Oct  6 19:39:58 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0de0,100a4,1aae0ddf) snd_(una,nxt,max) (c94368,c94368,c94368)
 Oct  6 19:39:58 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aae0ddf,c94368,7c00)
 Oct  6 19:39:58 flash /kernel.tst: 0xf2021c00 LAST_ACK:output c94368@1aae0de0, urp=0<ACK,FIN> -> LAST_ACK
 Oct  6 19:39:58 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0de0,100a4,1aae0ddf) snd_(una,nxt,max) (c94368,c94369,c94369)
 Oct  6 19:39:58 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aae0ddf,c94368,7c00)
 Oct  6 19:39:58 flash /kernel.tst: 0xf2021c00 CLOSE_WAIT:user DISCONNECT -> LAST_ACK
 Oct  6 19:39:58 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0de0,100a4,1aae0ddf) snd_(una,nxt,max) (c94368,c94369,c94369)
 Oct  6 19:39:58 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aae0ddf,c94368,7c00)
 Oct  6 19:39:58 flash /kernel.tst: 0xf2021c00 LAST_ACK:user DETACH -> LAST_ACK
 Oct  6 19:39:58 flash /kernel.tst: 	rcv_(nxt,wnd,up) (1aae0de0,100a4,1aae0ddf) snd_(una,nxt,max) (c94368,c94369,c94369)
 Oct  6 19:39:58 flash /kernel.tst: 	snd_(wl1,wl2,wnd) (1aae0ddf,c94368,7c00)
 Oct  6 19:39:58 flash /kernel.tst: ???????? drop 1aae0de0@c94369, urp=0<ACK>
 
 ------------------------------------------------------------------------------
 
     Reproduction of bug with initial window size of 16384.  However, note that
     the window size was original set to 65536.  I then did 'route change'
     and sysctl's to set it back to 16384.
 
     This is WITHOUT the patch.  I don't have a tcpdebug available for this.
     
     Question:  Does that bug fix solve this situation too ?  I believe it
     does.
 
 
 19:15:59.200994 205.149.163.43.1031 > 205.252.116.184.80: S 63543536:63543536(0) win 16384 <mss 1460,nop,wscale 0,nop,nop,timestamp 663 0,nop,nop,ccnew 9> (DF) [tos 0x10]
 19:15:59.333205 205.252.116.184.80 > 205.149.163.43.1031: S 311276215:311276215(0) ack 63543537 win 31744 <mss 1460>
 19:15:59.333325 205.149.163.43.1031 > 205.252.116.184.80: . ack 311276216 win 164 (DF) [tos 0x10]
 19:16:00.107882 205.149.163.43.1031 > 205.252.116.184.80: P 63543537:63543544(7) ack 311276216 win 164 (DF) [tos 0x10]
 19:16:00.250022 205.252.116.184.80 > 205.149.163.43.1031: . ack 63543544 win 31744 (DF) [tos 0x10]
 19:16:00.250338 205.252.116.184.80 > 205.149.163.43.1031: . 311276216:311276380(164) ack 63543544 win 31744 (DF) [tos 0x10]
 19:16:00.370054 205.149.163.43.1031 > 205.252.116.184.80: . ack 311276380 win 0 (DF) [tos 0x10]
 19:16:01.508746 205.252.116.184.80 > 205.149.163.43.1031: . ack 63543544 win 31744 [tos 0x10]
 19:16:01.508837 205.149.163.43.1031 > 205.252.116.184.80: . ack 311276380 win 0 (DF) [tos 0x10]
 19:16:03.707130 205.252.116.184.80 > 205.149.163.43.1031: . ack 63543544 win 31744 [tos 0x10]
 19:16:03.707211 205.149.163.43.1031 > 205.252.116.184.80: . ack 311276380 win 0 (DF) [tos 0x10]
 19:16:07.965513 205.252.116.184.80 > 205.149.163.43.1031: . ack 63543544 win 31744 [tos 0x10]
 19:16:07.965597 205.149.163.43.1031 > 205.252.116.184.80: . ack 311276380 win 0 (DF) [tos 0x10]
 19:16:09.718441 205.149.163.43.1031 > 205.252.116.184.80: P 63543544:63543549(5) ack 311276380 win 0 (DF) [tos 0x10]
 19:16:09.831310 205.252.116.184.80 > 205.149.163.43.1031: R 311276380:311276380(0) win 0
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710070250.TAA19621>