Read Timed Out Prior to Idle Timeout
------------------------------------

                 Key: FTPSERVER-334
                 URL: https://issues.apache.org/jira/browse/FTPSERVER-334
             Project: FtpServer
          Issue Type: Bug
    Affects Versions: 1.0.2
            Reporter: Nick Padgett


I receive a read timeout when I attempt to passively ftp a file that is longer 
than the idle timeout.  The file makes it to the server in its entirety and 
then throws a read timeout.  The input and output sockets need to be kept in 
sync.  I.e. the input socket shouldn't timeout if the output socket was used 
within the idle timeout.  Similarly, the output socket shouldn't timeout if the 
input socket was used withing the idle timeout.

<code>
1304157934 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: USER glattig
1304158004 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: PASS *****
1304158005 [pool-2-thread-455] INFO  org.apache.ftpserver.command.impl.PASS  - 
Login success - glattig
1304158044 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: OPTS utf8 on
1304158083 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: PWD
1304158122 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: CWD 
/1037/2009/09/14/
1304158163 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: TYPE I
1304158202 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: PASV
1304158281 [pool-2-thread-455] INFO  
org.apache.ftpserver.listener.nio.FtpLoggingFilter  - RECEIVED: STOR 
6928_uUKgWHvc_event.wmv
1306180855 [pool-2-thread-455] WARN  org.apache.ftpserver.impl.IODataConnection 
 - Exception during data transfer, closing data connection socket
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        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:721)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
        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:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:375)
        at 
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:229)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:433)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47)
        at 
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:801)
        at 
org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:71)
        at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:801)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:793)
        at 
org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:735)
        at java.lang.Thread.run(Thread.java:619)
</code>

>From spring.xml: 
<code> 
<bean id="dataConnectionConfigurationFactory" 
class="org.apache.ftpserver.DataConnectionConfigurationFactory"> 
<property name="activeEnabled" value="true" /> 
<property name="activeIpCheck" value="false" /> 
<property name="idleTime" value="60" /> 
                ... 
</bean> 
        ... 
        <bean id="listenerFactory" 
class="org.apache.ftpserver.listener.ListenerFactory"> 
<property name="idleTimeout" value="300" /> 
                ... 
</bean> 
        ... 
</code>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to