Opened 15 years ago

Closed 12 years ago

Last modified 10 years ago

#4649 closed Bug report (outdated)

large text file in ASCII mode did not get downloaded during ssl/tls session

Reported by: Shawn Kondel Owned by:
Priority: high Component: FileZilla Client
Keywords: ascii gnutls Cc: jskondel@…
Component version: Operating system type: Other
Operating system version: AIX 5.3.0009

Description

Filezilla 3.2.6.1
vsftpd 2.1.0 on AIX with TLS support

When I downloaded a large text file (e.g. 80KB file) in ASCII mode from remote server to local PC (using either implicit or explicit tls/ssl), the file does not get copied. This was tried on both passive and active mode. I have no problem downloading same large text file in binary mode. I also have no problem with smaller text files and uploading large text files in ASCII mode.

I see 2 error TLS messages in debug mode
Trace: GnuTLS error -8: A record packet with illegal version was
Trace: GnuTLS error -9: A TLS packet with unexpected length was received.

WinSCP have no problem downloading large text file in ASCII mode so it may not be the server issue.

Here is the rest of debug/trace log during the download in ASCII mode:

Trace: CControlSocket::DoClose(64)
Status: Resolving address of mtclaw
Status: Connecting to 10.131.1.203:2121...
Status: Connection established, initializing TLS...
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: Handshake successful
Trace: Cipher: 3DES-CBC, MAC: SHA1
Status: Verifying certificate...
Trace: CFtpControlSocket::SendNextCommand()
Status: TLS/SSL connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Welcome to MTC Lawson FTP service.
Trace: CFtpControlSocket::SendNextCommand()
Command: USER skondel
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 331 Please specify the password.
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 230 Login successful.
Trace: CFtpControlSocket::SendNextCommand()
Command: OPTS UTF8 ON
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 Always in UTF8 mode.
Trace: CFtpControlSocket::SendNextCommand()
Command: PBSZ 0
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 PBSZ set to 0.
Trace: CFtpControlSocket::SendNextCommand()
Command: PROT P
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 PROT now Private.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFileZillaEnginePrivate::ResetOperation(0)
Trace: CFtpControlSocket::FileTransfer()
Status: Starting download of /dayton265a.csv
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: CWD /
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 250 Directory successfully changed.
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: FileTransferSubcommandResult()
Trace: CFtpControlSocket::SendNextCommand()
Trace: FileTransferSend()
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 1
Command: TYPE A
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 Switching to ASCII mode.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 1
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 2
Command: PASV
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 227 Entering Passive Mode (10,131,1,203,78,68).
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: RETR dayton265a.csv
Trace: CTransferSocket::OnConnect
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CFtpControlSocket::OnReceive()
Response: 150 Opening ASCII mode data connection for dayton265a.csv (95621 bytes).
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 1
Trace: state = 4
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 5
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: Handshake successful
Trace: Session resumed
Trace: Cipher: 3DES-CBC, MAC: SHA1
Trace: CTransferSocket::OnConnect
Trace: CTlsSocket::OnRead()
Trace: GnuTLS error -8: A record packet with illegal version was received.
Trace: CTlsSocket::OnRead()
Trace: GnuTLS error -9: A TLS packet with unexpected length was received.
Status: Server did not properly shut down TLS connection
Trace: CTlsSocket::OnSocketEvent(): close event received
Trace: CRealControlSocket::OnClose(10053)
Error: Disconnected from server: ECONNABORTED - Connection aborted
Trace: CControlSocket::DoClose(64)
Trace: CFtpControlSocket::ResetOperation(66)
Trace: CControlSocket::ResetOperation(66)
Trace: CFtpControlSocket::ResetOperation(66)
Trace: Deleting empty file
Trace: CControlSocket::ResetOperation(66)
Trace: CFileZillaEnginePrivate::ResetOperation(66)
Trace: CControlSocket::DoClose(64)
Status: Resolving address of mtclaw
Status: Connecting to 10.131.1.203:2121...
Status: Connection established, initializing TLS...
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: Handshake successful
Trace: Cipher: 3DES-CBC, MAC: SHA1
Status: Verifying certificate...
Trace: CFtpControlSocket::SendNextCommand()
Status: TLS/SSL connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Welcome to MTC Lawson FTP service.
Trace: CFtpControlSocket::SendNextCommand()
Command: USER skondel
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 331 Please specify the password.
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 230 Login successful.
Trace: CFtpControlSocket::SendNextCommand()
Command: OPTS UTF8 ON
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 Always in UTF8 mode.
Trace: CFtpControlSocket::SendNextCommand()
Command: PBSZ 0
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 PBSZ set to 0.
Trace: CFtpControlSocket::SendNextCommand()
Command: PROT P
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 PROT now Private.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFileZillaEnginePrivate::ResetOperation(0)
Trace: CFtpControlSocket::FileTransfer()
Status: Starting download of /dayton265a.csv
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: CWD /
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 250 Directory successfully changed.
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: FileTransferSubcommandResult()
Trace: CFtpControlSocket::SendNextCommand()
Trace: FileTransferSend()
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 1
Command: TYPE A
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 Switching to ASCII mode.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 1
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 2
Command: PASV
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 227 Entering Passive Mode (10,131,1,203,78,41).
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: RETR dayton265a.csv
Trace: CTransferSocket::OnConnect
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CFtpControlSocket::OnReceive()
Response: 150 Opening ASCII mode data connection for dayton265a.csv (95621 bytes).
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 1
Trace: state = 4
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 5
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: Handshake successful
Trace: Session resumed
Trace: Cipher: 3DES-CBC, MAC: SHA1
Trace: CTransferSocket::OnConnect
Trace: CTlsSocket::OnRead()
Trace: GnuTLS error -8: A record packet with illegal version was received.
Trace: CTlsSocket::OnRead()
Trace: GnuTLS error -9: A TLS packet with unexpected length was received.
Status: Server did not properly shut down TLS connection
Trace: CTlsSocket::OnSocketEvent(): close event received
Trace: CRealControlSocket::OnClose(10053)
Error: Disconnected from server: ECONNABORTED - Connection aborted
Trace: CControlSocket::DoClose(64)
Trace: CFtpControlSocket::ResetOperation(66)
Trace: CControlSocket::ResetOperation(66)
Trace: CFtpControlSocket::ResetOperation(66)
Trace: Deleting empty file
Trace: CControlSocket::ResetOperation(66)
Trace: CFileZillaEnginePrivate::ResetOperation(66)
Trace: CControlSocket::DoClose(64)
Status: Resolving address of mtclaw
Status: Connecting to 10.131.1.203:2121...
Status: Connection established, initializing TLS...
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: Handshake successful
Trace: Cipher: 3DES-CBC, MAC: SHA1
Status: Verifying certificate...
Trace: CFtpControlSocket::SendNextCommand()
Status: TLS/SSL connection established, waiting for welcome message...
Trace: CFtpControlSocket::OnReceive()
Response: 220 Welcome to MTC Lawson FTP service.
Trace: CFtpControlSocket::SendNextCommand()
Command: USER skondel
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 331 Please specify the password.
Trace: CFtpControlSocket::SendNextCommand()
Command: PASS
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 230 Login successful.
Trace: CFtpControlSocket::SendNextCommand()
Command: OPTS UTF8 ON
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 Always in UTF8 mode.
Trace: CFtpControlSocket::SendNextCommand()
Command: PBSZ 0
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 PBSZ set to 0.
Trace: CFtpControlSocket::SendNextCommand()
Command: PROT P
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 PROT now Private.
Status: Connected
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFileZillaEnginePrivate::ResetOperation(0)
Trace: CFtpControlSocket::FileTransfer()
Status: Starting download of /dayton265a.csv
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::ChangeDirSend()
Command: CWD /
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 250 Directory successfully changed.
Trace: CFtpControlSocket::ResetOperation(0)
Trace: CControlSocket::ResetOperation(0)
Trace: CFtpControlSocket::ParseSubcommandResult(0)
Trace: FileTransferSubcommandResult()
Trace: CFtpControlSocket::SendNextCommand()
Trace: FileTransferSend()
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 1
Command: TYPE A
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 200 Switching to ASCII mode.
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 1
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 2
Command: PASV
Trace: CTlsSocket::OnRead()
Trace: CFtpControlSocket::OnReceive()
Response: 227 Entering Passive Mode (10,131,1,203,78,72).
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 2
Trace: state = 2
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 4
Command: RETR dayton265a.csv
Trace: CTransferSocket::OnConnect
Trace: CTlsSocket::Handshake()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::OnSend()
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: CFtpControlSocket::OnReceive()
Response: 150 Opening ASCII mode data connection for dayton265a.csv (95621 bytes).
Trace: CFtpControlSocket::TransferParseResponse()
Trace: code = 1
Trace: state = 4
Trace: CFtpControlSocket::SendNextCommand()
Trace: CFtpControlSocket::TransferSend()
Trace: state = 5
Trace: CTlsSocket::OnRead()
Trace: CTlsSocket::Handshake()
Trace: Handshake successful
Trace: Session resumed
Trace: Cipher: 3DES-CBC, MAC: SHA1
Trace: CTransferSocket::OnConnect
Trace: CTlsSocket::OnRead()
Trace: GnuTLS error -8: A record packet with illegal version was received.
Trace: CRealControlSocket::OnClose(10053)
Error: Disconnected from server: ECONNABORTED - Connection aborted
Trace: CControlSocket::DoClose(64)
Trace: CFtpControlSocket::ResetOperation(66)
Trace: CControlSocket::ResetOperation(66)
Trace: CFtpControlSocket::ResetOperation(66)
Trace: Deleting empty file
Trace: CControlSocket::ResetOperation(66)
Trace: CFileZillaEnginePrivate::ResetOperation(66)

Change History (7)

comment:1 by Tim Kosse, 15 years ago

Priority: criticalhigh
Status: newmoreinfo

Which version of GnuTLS is the client linked against?

Which TLS library product and version is the server using?

in reply to:  1 comment:2 by Shawn Kondel, 15 years ago

Cc: jskondel@… added
Status: moreinfonew

Replying to codesquid:

Which version of GnuTLS is the client linked against?

FileZilla Client


Version: 3.2.6.1

Build information:

Compiled for: i586-pc-mingw32msvc
Compiled on: x86_64-unknown-linux-gnu
Build date: 2009-07-02
Compiled with: i586-mingw32msvc-gcc (GCC) 4.2.1-sjlj (mingw32-2)
Compiler flags: -g -O2 -Wall -g -fexceptions

Linked against:

wxWidgets: 2.8.10
GnuTLS: 2.8.1

Which TLS library product and version is the server using?

#rpm -qa |grep vsftpd
vsftpd-2.1.0-2
#ldd vsftpd
vsftpd needs:

/usr/lib/libc.a(shr.o)
/opt/freeware/lib/libssl.a(libssl.so.0.9.8)
/opt/freeware/lib/libcrypto.a(libcrypto.so.0.9.8)
/unix
/usr/lib/libcrypt.a(shr.o)
/usr/lib/libc.a(shr_64.o)
/usr/lib/libpthreads.a(shr_xpg5_64.o)
/usr/lib/libcrypt.a(shr_64.o)

#rpm -qa |grep openssl
openssl-0.9.8k-1

comment:3 by Tim Kosse, 15 years ago

Status: newmoreinfo

Can you please try vsftpd 2.1.2?

comment:4 by Shawn Kondel, 15 years ago

Status: moreinfonew

Upgraded vsftpd to v2.1.2 on AIX 5.3
restarted vsftpd daemon
transfer big syslog to PC in ASCII mode
failed
no syslog on PC side.

Still seeing GnuTLS error -8 and -9

comment:5 by Tim Kosse, 15 years ago

Status: newmoreinfo

Would it be possible to get a temporary guest account on your server so that I can analyze this problem further?

comment:6 by Alexander Schuch, 12 years ago

Do you still have that problem with current version of FileZilla and vsftpd?

comment:7 by Alexander Schuch, 12 years ago

Resolution: outdated
Status: moreinfoclosed

No reply for more than 28 days.

Note: See TracTickets for help on using tickets.