Re: 2.2.14 TCP close problem - race?

From: I-Ming Chen (i-ming@aurema.com)
Date: Wed May 24 2000 - 20:44:20 EST


> > The client establishes a session, sends a request and receives ECONNRESET
> > instead of the data expected. The server side reports no errors. It
>
> That sounds reasonable
>
> > My uneducated guess is a race of some sort in the TCP close routine
> > where the closed state is being marked prematurely before all data is
> > sent and acked.
>
> The application is closing the socket with data sent by the client as
> yet unread. The TCP specifications require this causes a reset so the client
> knows the data is lost. Probably the server needs fixing - perhaps its not
> reading the last \n or something ?
>
> Alan

This is not the case... attached is a tcpdump of the session... its a bit
messy since both server and client were on same box.. but basically, this
trace showed a 2 phase Client Request -> Server Response.

Client sent some packets to server, client wait for response from server.
Sever sent back some packet to the client, and then straight away sent
a RST without the FINs. During this period, server did not receive
anything from client other then the normal ACK for the packets the server
sent.

I-Ming

--
i-ming@aurema.com

-------------- TCP DUMP ---------------------

[root@iming ~]# tcpdump -x tcp port 0 9000 Kernel filter, protocol ALL, datagram packet socket tcpdump: listening on all devices 20:47:46.124831 lo > localhost.1085 > localhost.9000: S 829440913:829440913(0) win 31072 <mss 3884,sackOK,timestamp 4347610 0,nop,wscale 0> (DF) 4500 003c 0df0 4000 4006 2eca 7f00 0001 7f00 0001 043d 2328 3170 4391 0000 0000 a002 7960 d3a9 0000 0204 0f2c 0402 080a 0042 56da 0000 0000 0103 0300 20:47:46.124831 lo < localhost.1085 > localhost.9000: S 829440913:829440913(0) win 31072 <mss 3884,sackOK,timestamp 4347610 0,nop,wscale 0> (DF) 4500 003c 0df0 4000 4006 2eca 7f00 0001 7f00 0001 043d 2328 3170 4391 0000 0000 a002 7960 d3a9 0000 0204 0f2c 0402 080a 0042 56da 0000 0000 0103 0300 20:47:46.124867 lo > localhost.9000 > localhost.1085: S 822823029:822823029(0) ack 829440914 win 31072 <mss 3884,sackOK,timestamp 4347610 4347610,nop,wscale 0> (DF) 4500 003c 0df1 4000 4006 2ec9 7f00 0001 7f00 0001 2328 043d 310b 4875 3170 4392 a012 7960 02fc 0000 0204 0f2c 0402 080a 0042 56da 0042 56da 0103 0300 20:47:46.124867 lo < localhost.9000 > localhost.1085: S 822823029:822823029(0) ack 829440914 win 31072 <mss 3884,sackOK,timestamp 4347610 4347610,nop,wscale 0> (DF) 4500 003c 0df1 4000 4006 2ec9 7f00 0001 7f00 0001 2328 043d 310b 4875 3170 4392 a012 7960 02fc 0000 0204 0f2c 0402 080a 0042 56da 0042 56da 0103 0300 20:47:46.124884 lo > localhost.1085 > localhost.9000: . 1:1(0) ack 1 win 31072 <nop,nop,timestamp 4347610 4347610> (DF) 4500 0034 0df2 4000 4006 2ed0 7f00 0001 7f00 0001 043d 2328 3170 4392 310b 4876 8010 7960 3b39 0000 0101 080a 0042 56da 0042 56da 20:47:46.124884 lo < localhost.1085 > localhost.9000: . 1:1(0) ack 1 win 31072 <nop,nop,timestamp 4347610 4347610> (DF) 4500 0034 0df2 4000 4006 2ed0 7f00 0001 7f00 0001 043d 2328 3170 4392 310b 4876 8010 7960 3b39 0000 0101 080a 0042 56da 0042 56da 20:47:46.185043 lo > localhost.1085 > localhost.9000: P 1:45(44) ack 1 win 31072 <nop,nop,timestamp 4347616 4347610> (DF) 4500 0060 0df3 4000 4006 2ea3 7f00 0001 7f00 0001 043d 2328 3170 4392 310b 4876 8018 7960 d854 0000 0101 080a 0042 56e0 0042 56da 0000 002c 0000 0001 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 0000 0000 0000 0001 0000 000a 6173 0000 20:47:46.185043 lo < localhost.1085 > localhost.9000: P 1:45(44) ack 1 win 31072 <nop,nop,timestamp 4347616 4347610> (DF) 4500 0060 0df3 4000 4006 2ea3 7f00 0001 7f00 0001 043d 2328 3170 4392 310b 4876 8018 7960 d854 0000 0101 080a 0042 56e0 0042 56da 0000 002c 0000 0001 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 0000 0000 0000 0001 0000 000a 6173 0000 20:47:46.185082 lo > localhost.9000 > localhost.1085: . 1:1(0) ack 45 win 31028 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0034 0df4 4000 4006 2ece 7f00 0001 7f00 0001 2328 043d 310b 4876 3170 43be 8010 7934 3b2d 0000 0101 080a 0042 56e0 0042 56e0 20:47:46.185082 lo < localhost.9000 > localhost.1085: . 1:1(0) ack 45 win 31028 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0034 0df4 4000 4006 2ece 7f00 0001 7f00 0001 2328 043d 310b 4876 3170 43be 8010 7934 3b2d 0000 0101 080a 0042 56e0 0042 56e0 20:47:46.185234 lo > localhost.9000 > localhost.1085: P 1:41(40) ack 45 win 31028 <nop,nop,timestamp 4347616 4347616> (DF) 4500 005c 0df5 4000 4006 2ea5 7f00 0001 7f00 0001 2328 043d 310b 4876 3170 43be 8018 7934 39c6 0000 0101 080a 0042 56e0 0042 56e0 0000 002c 0000 0001 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 0000 0000 0000 0001 0000 000a 20:47:46.185234 lo < localhost.9000 > localhost.1085: P 1:41(40) ack 45 win 31028 <nop,nop,timestamp 4347616 4347616> (DF) 4500 005c 0df5 4000 4006 2ea5 7f00 0001 7f00 0001 2328 043d 310b 4876 3170 43be 8018 7934 39c6 0000 0101 080a 0042 56e0 0042 56e0 0000 002c 0000 0001 0000 0000 0000 0000 0000 00ff 0000 0000 0000 0000 0000 0000 0000 0001 0000 000a 20:47:46.185259 lo > localhost.1085 > localhost.9000: . 45:45(0) ack 41 win 31032 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0034 0df6 4000 4006 2ecc 7f00 0001 7f00 0001 043d 2328 3170 43be 310b 489e 8010 7938 3b01 0000 0101 080a 0042 56e0 0042 56e0 20:47:46.185259 lo < localhost.1085 > localhost.9000: . 45:45(0) ack 41 win 31032 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0034 0df6 4000 4006 2ecc 7f00 0001 7f00 0001 043d 2328 3170 43be 310b 489e 8010 7938 3b01 0000 0101 080a 0042 56e0 0042 56e0 20:47:46.185281 lo > localhost.9000 > localhost.1085: P 41:45(4) ack 45 win 31028 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0038 0df7 4000 4006 2ec7 7f00 0001 7f00 0001 2328 043d 310b 489e 3170 43be 8018 7934 d985 0000 0101 080a 0042 56e0 0042 56e0 6173 0000 20:47:46.185281 lo < localhost.9000 > localhost.1085: P 41:45(4) ack 45 win 31028 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0038 0df7 4000 4006 2ec7 7f00 0001 7f00 0001 2328 043d 310b 489e 3170 43be 8018 7934 d985 0000 0101 080a 0042 56e0 0042 56e0 6173 0000 20:47:46.185322 lo > localhost.9000 > localhost.1085: R 45:45(0) ack 45 win 31072 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0034 0df8 4000 4006 2eca 7f00 0001 7f00 0001 2328 043d 310b 48a2 3170 43be 8014 7960 3ad1 0000 0101 080a 0042 56e0 0042 56e0 20:47:46.185322 lo < localhost.9000 > localhost.1085: R 45:45(0) ack 45 win 31072 <nop,nop,timestamp 4347616 4347616> (DF) 4500 0034 0df8 4000 4006 2eca 7f00 0001 7f00 0001 2328 043d 310b 48a2 3170 43be 8014 7960 3ad1 0000 0101 080a 0042 56e0 0042 56e0 20:47:46.389679 lo > localhost.1085 > localhost.9000: R 45:45(0) ack 45 win 31072 <nop,nop,timestamp 4347637 4347616> (DF) 4500 0034 0df9 4000 4006 2ec9 7f00 0001 7f00 0001 043d 2328 3170 43be 310b 48a2 8014 7960 3abc 0000 0101 080a 0042 56f5 0042 56e0 20:47:46.389679 lo < localhost.1085 > localhost.9000: R 45:45(0) ack 45 win 31072 <nop,nop,timestamp 4347637 4347616> (DF) 4500 0034 0df9 4000 4006 2ec9 7f00 0001 7f00 0001 043d 2328 3170 43be 310b 48a2 8014 7960 3abc 0000 0101 080a 0042 56f5 0042 56e0

20 packets received by filter

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed May 31 2000 - 21:00:13 EST