Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Mar 99 20:02:34 GMT
From:      Terry Glanfield <terry@program-products.co.uk>
To:        freebsd-stable@freebsd.org
Subject:   FIN not send on socket close()
Message-ID:  <9903262002.AA15201@program-products.co.uk>

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

Hi,

I'm having trouble getting an FTP proxy working on 3.1-STABLE (~1 week
old).  The proxy is a PASV aware version of the FTWK ftp-gw.  When
trying to STOR a file through the proxy the receiving end hangs
waiting for a FIN packet that is never sent.  The ktrace output below
shows the socket being closed.  I've also included some short packet
traces - sorry about the line length - and dumps of a pftp session for
comparison.

The only difference I can see is that the proxy is being launched from
inetd.  Any help would be greatly appreciated.

Cheers,
Terry.

Fristly the traces from the proxy version.

Receiver:

  6952 ftpd     CALL  read(0x8,0xefbfcfbc,0x400)
  6952 ftpd     GIO   fd 8 read 5 bytes
       "test
       "
  6952 ftpd     RET   read 5
  6952 ftpd     CALL  write(0x7,0xefbfcfbc,0x5)
  6952 ftpd     GIO   fd 7 wrote 5 bytes
       "test
       "
  6952 ftpd     RET   write 5
  6952 ftpd     CALL  read(0x8,0xefbfcfbc,0x400)

>>read never returns...

Sender:

  8543 ftp-gw   CALL  read(0x8,0xefbfce5c,0x800)
  8543 ftp-gw   GIO   fd 8 read 5 bytes
       "test
       "
  8543 ftp-gw   RET   read 5
  8543 ftp-gw   CALL  write(0x7,0xefbfce5c,0x5)
  8543 ftp-gw   GIO   fd 7 wrote 5 bytes
       "test
       "
  8543 ftp-gw   RET   write 5
  8543 ftp-gw   CALL  select(0x400,0xefbfdcb0,0,0,0xefbfdd30)
  8543 ftp-gw   RET   select 1
  8543 ftp-gw   CALL  read(0x8,0xefbfce5c,0x800)
  8543 ftp-gw   GIO   fd 8 read 0 bytes
       ""
  8543 ftp-gw   RET   read 0
  8543 ftp-gw   CALL  close(0x8)
  8543 ftp-gw   RET   close 0
  8543 ftp-gw   CALL  close(0x7)
  8543 ftp-gw   RET   close 0

>>... but the socket is closed


Here are the traces from the pftp version.

Receiver:

  6966 ftpd     CALL  read(0x8,0xefbfcfbc,0x400)
  6966 ftpd     GIO   fd 8 read 5 bytes
       "test
       "
  6966 ftpd     RET   read 5
  6966 ftpd     CALL  write(0x7,0xefbfcfbc,0x5)
  6966 ftpd     GIO   fd 7 wrote 5 bytes
       "test
       "
  6966 ftpd     RET   write 5
  6966 ftpd     CALL  read(0x8,0xefbfcfbc,0x400)
  6966 ftpd     GIO   fd 8 read 0 bytes
       ""
  6966 ftpd     RET   read 0

>>read returns cleanly...

  6966 ftpd     CALL  write(0x1,0x8059000,0x18)
  6966 ftpd     GIO   fd 1 wrote 24 bytes
       "226 Transfer complete.\r
       "
Sender:

  8595 pftp     CALL  read(0x4,0xefbfd3e4,0x400)
  8595 pftp     GIO   fd 4 read 5 bytes
       "test
       "
  8595 pftp     RET   read 5
  8595 pftp     CALL  write(0x5,0xefbfd3e4,0x5)
  8595 pftp     GIO   fd 5 wrote 5 bytes
       "test
       "
  8595 pftp     RET   write 5
  8595 pftp     CALL  read(0x4,0xefbfd3e4,0x400)
  8595 pftp     GIO   fd 4 read 0 bytes
       ""
  8595 pftp     RET   read 0
  8595 pftp     CALL  gettimeofday(0xefbfd290,0)
  8595 pftp     RET   gettimeofday 0
  8595 pftp     CALL  write(0x1,0xefbfd298,0x1c)
  8595 pftp     GIO   fd 1 wrote 28 bytes
       "\r100%      5       00:00 ETA"
  8595 pftp     RET   write 28/0x1c
  8595 pftp     CALL  setitimer(0,0xefbfd234,0)
  8595 pftp     RET   setitimer 0
  8595 pftp     CALL  write(0x1,0x8069000,0x1)
  8595 pftp     GIO   fd 1 wrote 1 byte
       "
       "
  8595 pftp     RET   write 1
  8595 pftp     CALL  close(0x4)
  8595 pftp     RET   close 0
  8595 pftp     CALL  close(0x5)
  8595 pftp     RET   close 0
  8595 pftp     CALL  sigaction(0x2,0xefbfcf50,0xefbfcf44)
  8595 pftp     RET   sigaction 0
  8595 pftp     CALL  read(0x3,0x8079000,0x4356)
  8595 pftp     GIO   fd 3 read 24 bytes
       "226 Transfer complete.\r
       "

Finally the packet traces.

Proxy version:

19:29:48.050523 212.240.242.226.2990 > 10.3.1.251.21: P 1748251412:1748251418(6) ack 1627790365 win 17238 (DF)
19:29:48.054606 10.3.1.251.21 > 212.240.242.226.2990: P 1:47(46) ack 6 win 17238 (DF) [tos 0x10]
19:29:48.055582 212.240.242.226.2992 > 10.3.1.251.49157: S 1754860719:1754860719(0) win 16384 <mss 1326> (DF)
19:29:48.056321 10.3.1.251.49157 > 212.240.242.226.2992: S 1634641441:1634641441(0) ack 1754860720 win 17238 <mss 1326> (DF)
19:29:48.056656 212.240.242.226.2992 > 10.3.1.251.49157: . ack 1 win 17238 (DF)
19:29:48.066298 212.240.242.226.2990 > 10.3.1.251.21: P 6:14(8) ack 47 win 17238 (DF)
19:29:48.072126 10.3.1.251.21 > 212.240.242.226.2990: P 47:97(50) ack 14 win 17238 (DF) [tos 0x10]
19:29:48.075895 212.240.242.226.2992 > 10.3.1.251.49157: P 1:6(5) ack 1 win 17238 (DF)
19:29:48.116205 212.240.242.226.2990 > 10.3.1.251.21: . ack 97 win 17238 (DF)
19:29:48.275329 10.3.1.251.49157 > 212.240.242.226.2992: . ack 6 win 17238 (DF) [tos 0x8]

pftp version:

19:35:11.579785 212.240.242.226.2998 > 10.3.1.251.21: P 1809781922:1809781928(6) ack 1688388446 win 17238 (DF) [tos 0x10]
19:35:11.584555 10.3.1.251.21 > 212.240.242.226.2998: P 1:47(46) ack 6 win 17238 (DF) [tos 0x10]
19:35:11.587443 212.240.242.226.2999 > 10.3.1.251.49158: S 1817760134:1817760134(0) win 16384 <mss 1326> (DF)
19:35:11.588171 10.3.1.251.49158 > 212.240.242.226.2999: S 1696091157:1696091157(0) ack 1817760135 win 17238 <mss 1326> (DF)
19:35:11.588500 212.240.242.226.2999 > 10.3.1.251.49158: . ack 1 win 17238 (DF)
19:35:11.589643 212.240.242.226.2998 > 10.3.1.251.21: P 6:14(8) ack 47 win 17238 (DF) [tos 0x10]
19:35:11.593372 10.3.1.251.21 > 212.240.242.226.2998: P 47:97(50) ack 14 win 17238 (DF) [tos 0x10]
19:35:11.597962 212.240.242.226.2999 > 10.3.1.251.49158: P 1:6(5) ack 1 win 17238 (DF) [tos 0x8]
19:35:11.601319 212.240.242.226.2999 > 10.3.1.251.49158: F 6:6(0) ack 1 win 17238 (DF) [tos 0x8]
19:35:11.601936 10.3.1.251.49158 > 212.240.242.226.2999: . ack 7 win 17238 (DF) [tos 0x8]
19:35:11.602827 10.3.1.251.21 > 212.240.242.226.2998: P 97:121(24) ack 14 win 17238 (DF) [tos 0x10]
19:35:11.603530 10.3.1.251.49158 > 212.240.242.226.2999: F 1:1(0) ack 7 win 17238 (DF) [tos 0x8]
19:35:11.603833 212.240.242.226.2999 > 10.3.1.251.49158: . ack 2 win 17238 (DF) [tos 0x8]


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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