Hi, thank you for your prompt reply. You can find my answers to your questions 
below:

@David:

> Are you sure your description of the problem is correct?

Sorry, I think my description was vague, I'll try to elaborate better.

> According to you,  this error occurs when you cancel the upload . But you
> can see that the warn message is written 11 seconds after the  STOR command
> is received

Yes, the SSLException is thrown because I'm cancelling the upload. But I hit 
cancel because when I upload the file (STOR), the upload stalls, it never 
finishes, just 300 kB are sent and then the transfer speed goes to 0 kB/s. The 
exception is not the problem, the problem is why uploads won't work.



@Sai

> Can you please answer the questions below so we all have a better
> understanding of what's going on?
> 1. Are downloads working fine for you?

Yes, I can perform any other action. Uploads are the only feature I'm missing.

> 2. Is directory listing working fine for you? Normally FileZilla does a
> LIST or MLSD command to list the directory contents soon after login, but I
> do not see anything in the logs to reflect it.

Ohh, sorry, I intentionally deleted those lines, but the MLSD is sent:

START ---------- ---------- ---------- ---------- ---------- ----------
Status:  Resolving address of localhost
Status:  Connecting to 127.0.0.1:21991...
Status:  Connection established, initializing TLS...
Status:  Verifying certificate...
Status:  TLS/SSL connection established, waiting for welcome message...
Response:   220 Service ready for new user.
Command: USER admin
Response:   331 User name okay, need password for admin.
Command: PASS *****
Response:   230 User logged in, proceed.
Command: SYST
Response:   215 UNIX Type: Apache FtpServer
Command: FEAT
Response:   211-Extensions supported
Response:    SIZE
Response:    MDTM
Response:    REST STREAM
Response:    LANG en;zh-tw;ja;is
Response:    MLST Size;Modify;Type;Perm
Response:    AUTH SSL
Response:    AUTH TLS
Response:    MODE Z
Response:    UTF8
Response:    TVFS
Response:    MD5
Response:    MMD5
Response:    MFMT
Response:   211 End
Command: OPTS UTF8 ON
Response:   200 Command OPTS okay.
Command: PBSZ 0
Response:   200 Command PBSZ okay.
Command: PROT P
Response:   200 Command PROT okay.
Command: OPTS MLST size;modify;type;
Response:   200 Command OPTS okay.
Status:  Connected
Status:  Retrieving directory listing...
Command: PWD
Response:   257 "/" is current directory.
Command: TYPE I
Response:   200 Command TYPE okay.
Command: PASV
Response:   227 Entering Passive Mode (127,0,0,1,153,43)
Command: MLSD
Response:   150 File status okay; about to open data connection.
Response:   226 Closing data connection.
Status:  Directory listing successful
END ---------- ---------- ---------- ---------- ---------- ----------

> 3. What happens if you try to upload a small file (like 1K or less)

In FileZilla it works. Using FileZilla, I can upload files smaller than 300kb. 
I can even upload files bigger than 300 kB, but after FileZilla timeouts 
several times: for example, if I try to upload a file of 1.9 MB it takes almost 
60 s to complete, but first it uploads 300 kB, then FileZilla prints connection 
timeout (and server logs SSLException, because the client closes the 
connection), FileZilla then retries the operation, this time it can upload a 
little more, then another timeout and so on, until it finally completes. But 
with other clients, like WinSCP, I cannot even upload an small file. I also 
tested a java ftp client library, and I found that when uploading using FTPES 
without issuing the AUTH SSL command and PROT C I can upload files, as soon as 
I send the AUTH SSL, FTPES uploads don't work either.

> 4. Are the uploads working fine when you are NOT using SSL at all (plain
> old FTP)?

FTP works perfectly, just as any other action in FTPES or FTPS. just upload 
fails.

> 5. Do you see any errors in FileZilla log or the FTP Server log when you
> quit (logout) the session? Just login and log out without doing anything
> else.
> 

No errors besides the SSLException, but that exception is thrown only because I 
cancel the upload after some time or when FileZilla timeouts and try to upload 
again, when it tries to upload again, generally it can upload more bytes 
(sometimes it can upload almost 0.5 MB) but again it stalls and never goes 
beyond that.

> 
> Thanks.

again, thanks for all your help.

----- Original Message -----
From: "Sai Pullabhotla" <sai.pullabho...@jmethods.com>
To: ftpserver-users@mina.apache.org
Cc: rdp...@gmail.com
Sent: Tuesday, January 29, 2013 6:00:41 AM
Subject: Re: Upload hangs using FTPS

Can you please answer the questions below so we all have a better
understanding of what's going on?

1. Are downloads working fine for you?
2. Is directory listing working fine for you? Normally FileZilla does a
LIST or MLSD command to list the directory contents soon after login, but I
do not see anything in the logs to reflect it.
3. What happens if you try to upload a small file (like 1K or less)
4. Are the uploads working fine when you are NOT using SSL at all (plain
old FTP)?
5. Do you see any errors in FileZilla log or the FTP Server log when you
quit (logout) the session? Just login and log out without doing anything
else.

Thanks.


On Mon, Jan 28, 2013 at 9:21 AM, Rubén Páez <ruben.p...@itac.com.co> wrote:

>
>
> Hi!
>
>
> I have configured an standalone ftp server (Apache FTPServer) using this
> config file:
>
>
>
>
> START ---------- ---------- ---------- ---------- ---------- ----------
> ----------
>
> <?xml version="1.0" encoding="UTF-8"?>
> <server xmlns="http://mina.apache.org/ftpserver/spring/v1";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="
> http://mina.apache.org/ftpserver/spring/v1
> http://mina.apache.org/ftpserver/ftpserver-1.0.xsd
> "
> id="myServer">
> <listeners>
> <nio-listener name="default" port="2122">
> <ssl>
> <keystore file="./res/ftpserver.jks" password="password" />
> </ssl>
> </nio-listener>
> <nio-listener name="sdefault" port="21991" implicit-ssl="true">
> <ssl>
> <keystore file="./res/ftpserver.jks" password="password" />
> </ssl>
> </nio-listener>
> </listeners>
> <file-user-manager file="./res/conf/users.properties" />
> </server>
> END ---------- ---------- ---------- ---------- ---------- ----------
> ----------
>
>
>
>
> I use FileZilla Client to log in (either using FTPES or FTPS, I've tried
> both, I accept the certificate FileZilla displays to me) and try to upload
> a file. Everything seems ok, but the upload always stalls (around 300 kB).
> The log of FileZilla Client is:
>
>
>
>
> START ---------- ---------- ---------- ---------- ---------- ----------
> ----------
>
> Status: Resolving address of localhost
> Status: Connecting to 127.0.0.1:2122...
> Status: Connection established, waiting for welcome message...
> Response: 220 Service ready for new user.
> Command: AUTH TLS
> Response: 234 Command AUTH okay; starting TLS connection.
> Status: Initializing TLS...
> Status: Verifying certificate...
> Command: USER xxx
> Status: TLS/SSL connection established.
> Response: 331 User name okay, need password for xxx
> Command: PASS *****
> Response: 230 User logged in, proceed.
> Command: OPTS UTF8 ON
> Response: 200 Command OPTS okay.
> Command: PBSZ 0
> Response: 200 Command PBSZ okay.
> Command: PROT P
> Response: 200 Command PROT okay.
> Command: OPTS MLST size;modify;type;
> Response: 200 Command OPTS okay.
> Status: Connected
> Status: Starting upload of xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Command: CWD /
> Response: 250 Directory changed to /
> Command: PWD
> Response: 257 "/" is current directory.
> Command: TYPE I
> Response: 200 Command TYPE okay.
> Command: PASV
> Response: 227 Entering Passive Mode (127,0,0,1,199,113)
> Command: STOR xxxxxxxxxxxxxxxxxxxxxxx
> Response: 150 File status okay; about to open data connection.
> Error: Connection timed out
> Error: File transfer failed after transferring 278.6 KB in 21 seconds
> Response: 551 xxxxxxxxxxxxxxxxxxxxxx: Error on output file.
> Status: Disconnected from server
> Error: Connection closed by server
> END ---------- ---------- ---------- ---------- ---------- ----------
> ----------
>
>
>
>
> and the Apache FTP Sever log is:
>
>
>
>
> START ---------- ---------- ---------- ---------- ---------- ----------
> ----------
>
> [ INFO] 2013-01-25 12:04:31,940 [] [] Refreshing
> org.springframework.context.support.FileSystemXmlApplicationContext@ed0338:
> display name
> [org.springframework.context.support.FileSystemXmlApplicationContext@ed0338];
> startup date [Fri Jan 25 12:04:31 COT 2013]; root of context hierarchy
> [ INFO] 2013-01-25 12:04:32,030 [] [] Loading XML bean definitions from
> file [xxxxxxxxxxxx/apache-ftpserver-1.0.6/res/conf/ftpd-typical.xml]
> [ INFO] 2013-01-25 12:04:32,370 [] [] Bean factory for application context
> [org.springframework.context.support.FileSystemXmlApplicationContext@ed0338]:
> org.springframework.beans.factory.support.DefaultListableBeanFactory@19bb25a
> [ INFO] 2013-01-25 12:04:32,402 [] [] Pre-instantiating singletons in
> org.springframework.beans.factory.support.DefaultListableBeanFactory@19bb25a:
> defining beans
> [org.apache.ftpserver.listener.ListenerFactory#0,org.apache.ftpserver.listener.ListenerFactory#1,org.apache.ftpserver.usermanager.PropertiesUserManagerFactory#0,org.apache.ftpserver.FtpServerFactory#0,myServer];
> root of factory hierarchy
> [ INFO] 2013-01-25 12:04:32,744 [] [] FTP server started
>
>
> [ INFO] 2013-01-25 12:05:06,927 [] [127.0.0.1] CREATED
> [ INFO] 2013-01-25 12:05:06,929 [] [127.0.0.1] OPENED
> [ INFO] 2013-01-25 12:05:06,930 [] [127.0.0.1] SENT: 220 Service ready for
> new user.
>
>
> [ INFO] 2013-01-25 12:05:07,051 [] [127.0.0.1] RECEIVED: AUTH TLS
> [ INFO] 2013-01-25 12:05:07,163 [] [127.0.0.1] SENT: 234 Command AUTH
> okay; starting TLS connection.
>
>
> [ INFO] 2013-01-25 12:05:07,164 [] [127.0.0.1] RECEIVED: USER xxx
> [ INFO] 2013-01-25 12:05:07,167 [xxx] [127.0.0.1] SENT: 331 User name
> okay, need password for xxx.
>
>
> [ INFO] 2013-01-25 12:05:07,208 [xxx] [127.0.0.1] RECEIVED: PASS *****
> [ INFO] 2013-01-25 12:05:07,209 [xxx] [127.0.0.1] Login success - xxx
> [ INFO] 2013-01-25 12:05:07,210 [xxx] [127.0.0.1] SENT: 230 User logged
> in, proceed.
>
>
> [ INFO] 2013-01-25 12:05:07,258 [xxx] [127.0.0.1] RECEIVED: OPTS UTF8 ON
> [ INFO] 2013-01-25 12:05:07,261 [xxx] [127.0.0.1] SENT: 200 Command OPTS
> okay.
>
>
> [ INFO] 2013-01-25 12:05:07,318 [xxx] [127.0.0.1] RECEIVED: PBSZ 0
> [ INFO] 2013-01-25 12:05:07,319 [xxx] [127.0.0.1] SENT: 200 Command PBSZ
> okay.
>
>
> [ INFO] 2013-01-25 12:05:07,343 [xxx] [127.0.0.1] RECEIVED: PROT P
> [ INFO] 2013-01-25 12:05:07,344 [xxx] [127.0.0.1] SENT: 200 Command PROT
> okay.
>
>
> [ INFO] 2013-01-25 12:05:07,384 [xxx] [127.0.0.1] RECEIVED: OPTS MLST
> size;modify;type;
> [ INFO] 2013-01-25 12:05:07,386 [xxx] [127.0.0.1] SENT: 200 Command OPTS
> okay.
>
>
> [ INFO] 2013-01-25 12:05:07,421 [xxx] [127.0.0.1] RECEIVED: CWD /
> [ INFO] 2013-01-25 12:05:07,422 [xxx] [127.0.0.1] SENT: 250 Directory
> changed to /
>
>
> [ INFO] 2013-01-25 12:05:07,452 [xxx] [127.0.0.1] RECEIVED: PWD
> [ INFO] 2013-01-25 12:05:07,454 [xxx] [127.0.0.1] SENT: 257 "/" is current
> directory.
>
>
> [ INFO] 2013-01-25 12:05:07,499 [xxx] [127.0.0.1] RECEIVED: TYPE I
> [ INFO] 2013-01-25 12:05:07,503 [xxx] [127.0.0.1] SENT: 200 Command TYPE
> okay.
>
>
> [ INFO] 2013-01-25 12:05:07,553 [xxx] [127.0.0.1] RECEIVED: PASV
> [ INFO] 2013-01-25 12:05:07,556 [xxx] [127.0.0.1] SENT: 227 Entering
> Passive Mode (127,0,0,1,199,113)
>
>
> [ INFO] 2013-01-25 12:05:07,599 [xxx] [127.0.0.1] RECEIVED: STOR
> xxxxxxxxxxxxxx
> [ WARN] 2013-01-25 12:05:28,477 [xxx] [127.0.0.1] Exception during data
> transfer, closing data connection socket
> javax.net.ssl.SSLException: SSL peer shut down incorrectly
> at
> com.sun.net.ssl.internal.ssl.InputRecord.readV3Record(InputRecord.java:408)
> at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:360)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863)
> at
> com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:820)
> at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
> at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
> at java.io.FilterInputStream.read(FilterInputStream.java:90)
> at
> org.apache.ftpserver.impl.IODataConnection.transfer(IODataConnection.java:243)
> at
> org.apache.ftpserver.impl.IODataConnection.transferFromClient(IODataConnection.java:136)
> at org.apache.ftpserver.command.impl.STOR.execute(STOR.java:146)
> at
> org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:210)
> at
> org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:61)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:716)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
> at
> org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
> at
> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:75)
> at
> org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:136)
> at
> org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
> at
> org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:427)
> at
> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:245)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
> at
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:796)
> at
> org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:75)
> at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
> at
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:780)
> at
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:772)
> at
> org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:714)
> at java.lang.Thread.run(Thread.java:662)
> [ WARN] 2013-01-25 12:05:28,479 [xxx] [127.0.0.1] Releasing unreserved
> passive port: 51057
> END ---------- ---------- ---------- ---------- ---------- ----------
> ----------
>
>
>
>
> The SSLException is thrown when I cancel the upload. Can anybody help me?
> What am I configuring wrong that does not let me use FTPS?
>
>
> The system I'm running the tests in is Linux (ubuntu 12), jdk 6.
>
>
> I appreciate any hint you can give me!
>
>
>
> Rubén Darío Páez Rivera
>

-- 


Cordialmente, 

ITAC S.A. [http://www.itac.com.co/documentos/firmaITAC.gif]
www.itac.com.co         

Rubén Darío Páez Rivera 
Ingeniero Experto 

ITAC - IT Applications Consulting 
Avenida 19 # 120 – 71 Oficina 516 
Bogota, DC. Colombia 
Telefono (+571) 7444822 
ruben.p...@itac.com.co 




Nuestros clientes hacen parte de la calidad que brindamos por lo que lo 
invitamos a que si tiene una queja, reclamo o sugerencia nos la haga saber a 
cali...@itac.com.co

Reply via email to