You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ftpserver-users@mina.apache.org by "Pitoniak, Michael" <mp...@enterasys.com> on 2009/01/22 16:50:56 UTC
IOException on ftp client disconnect
Hi,
I am using the FTPServer and it works fine, it is just that I get the following exception every time a client disconnects....
Can someone let me know why I am seeing this? It does not originate from any of my code.
Many thanks,
mp
ERROR java.io.IOException: An existing connection was forcibly closed by the remote host
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(Unknown Source)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.read(Unknown Source)
at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:175)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:42)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:561)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:540)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:532)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:58)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:857)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
RE: IOException on ftp client disconnect
Posted by "Pitoniak, Michael" <mp...@enterasys.com>.
How do I set the logger level off of debug?
thx
-----Original Message-----
From: David Latorre [mailto:dvlato@gmail.com]
Sent: Thursday, January 22, 2009 2:01 PM
To: ftpserver-users@mina.apache.org
Subject: Re: IOException on ftp client disconnect
I would say your error message is caused when the FTPClient disconnects in a
non-graceful manner.
On the other hand, if I remember correctly the SSL exception might be due
to some bug in Mina - quite annoying when your log level is debug but
otherwise totally harmless (as far as I know) -but it is possible that just
most clients don't handle SSL disconnect in a propery way.
2009/1/22 Pitoniak, Michael <mp...@enterasys.com>
> Here is my code....rather trivail usage case.
>
>
>
> import java.io.File;
>
> import org.apache.ftpserver.FtpServer;
> import org.apache.ftpserver.FtpServerFactory;
> import org.apache.ftpserver.listener.ListenerFactory;
> import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
> import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
>
> import common.CommonConstants;
>
>
> public class ApacheFtpServer{
> private FtpServer server = null;
>
>
> public ApacheFtpServer(int port) throws Exception{
> initialize(port);
> }
>
> private void initialize(int port) throws Exception{
> FtpServerFactory serverFactory = new FtpServerFactory();
>
> ListenerFactory factory = new ListenerFactory();
>
> // set the port of the listener
> factory.setPort(port);
>
> // define SSL configuration
> //SslConfigurationFactory ssl = new SslConfigurationFactory();
> //ssl.setKeystoreFile(new
> File("support/apacheFtpServer/ftpserver.jks"));
> //ssl.setKeystorePassword("password");
>
> // set the SSL configuration for the listener
> //factory.setSslConfiguration(ssl.createSslConfiguration());
> //factory.setImplicitSsl(true);
>
> // replace the default listener
> serverFactory.addListener("default", factory.createListener());
>
> PropertiesUserManagerFactory userManagerFactory = new
> PropertiesUserManagerFactory();
> userManagerFactory.setFile(new
> File(CommonConstants.FTP_USERS_PROPERTIES_FILE));
> userManagerFactory.setPasswordEncryptor(new
> ClearTextPasswordEncryptor ());
>
>
> serverFactory.setUserManager(userManagerFactory.createUserManager());
>
> // start the server
> server = serverFactory.createServer();
>
> server.start();
> }
>
> public void suspend() throws Exception{
> server.suspend();
> }
>
> public void resume() throws Exception{
> server.resume();
> }
>
> public void stop() throws Exception{
> server.stop();
> }
>
>
>
> public static void main(String[] args) throws Exception {
> new ApacheFtpServer(CommonConstants.FTP_SERVER_DEFAULT_PORT);
> }
>
> }
>
>
>
> -----Original Message-----
> From: gary.bell@aero.bombardier.com [mailto:gary.bell@aero.bombardier.com]
> Sent: Thursday, January 22, 2009 12:32 PM
> To: ftpserver-users@mina.apache.org
> Subject: Re: IOException on ftp client disconnect
>
> You also get something similar using filezilla in SSL mode when it
> disconnects:
>
>
> [DEBUG] 2009-01-19 12:04:40,288 [] [] Unexpected exception from
> SSLEngine.closeInbound().
> javax.net.ssl.SSLException: Inbound closed before receiving peer's
> close_notify: possible truncation attack?
> at
> com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
> at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1356)
> at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1324)
> at
>
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1263)
> at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:155)
> at
> org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:386)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.sessionClosed(DefaultIoFilterChain.java:598)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:373)
> at
>
> org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:229)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:485)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor.remove(AbstractPollingIoProcessor.java:455)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:58)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:862)
> at
>
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> [ INFO] 2009-01-19 12:04:40,289 [gary] [172.25.72.185] CLOSED
>
>
> Best Regards,
>
> Gary
>
>
>
>
Re: IOException on ftp client disconnect
Posted by David Latorre <dv...@gmail.com>.
I would say your error message is caused when the FTPClient disconnects in a
non-graceful manner.
On the other hand, if I remember correctly the SSL exception might be due
to some bug in Mina - quite annoying when your log level is debug but
otherwise totally harmless (as far as I know) -but it is possible that just
most clients don't handle SSL disconnect in a propery way.
2009/1/22 Pitoniak, Michael <mp...@enterasys.com>
> Here is my code....rather trivail usage case.
>
>
>
> import java.io.File;
>
> import org.apache.ftpserver.FtpServer;
> import org.apache.ftpserver.FtpServerFactory;
> import org.apache.ftpserver.listener.ListenerFactory;
> import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
> import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
>
> import common.CommonConstants;
>
>
> public class ApacheFtpServer{
> private FtpServer server = null;
>
>
> public ApacheFtpServer(int port) throws Exception{
> initialize(port);
> }
>
> private void initialize(int port) throws Exception{
> FtpServerFactory serverFactory = new FtpServerFactory();
>
> ListenerFactory factory = new ListenerFactory();
>
> // set the port of the listener
> factory.setPort(port);
>
> // define SSL configuration
> //SslConfigurationFactory ssl = new SslConfigurationFactory();
> //ssl.setKeystoreFile(new
> File("support/apacheFtpServer/ftpserver.jks"));
> //ssl.setKeystorePassword("password");
>
> // set the SSL configuration for the listener
> //factory.setSslConfiguration(ssl.createSslConfiguration());
> //factory.setImplicitSsl(true);
>
> // replace the default listener
> serverFactory.addListener("default", factory.createListener());
>
> PropertiesUserManagerFactory userManagerFactory = new
> PropertiesUserManagerFactory();
> userManagerFactory.setFile(new
> File(CommonConstants.FTP_USERS_PROPERTIES_FILE));
> userManagerFactory.setPasswordEncryptor(new
> ClearTextPasswordEncryptor ());
>
>
> serverFactory.setUserManager(userManagerFactory.createUserManager());
>
> // start the server
> server = serverFactory.createServer();
>
> server.start();
> }
>
> public void suspend() throws Exception{
> server.suspend();
> }
>
> public void resume() throws Exception{
> server.resume();
> }
>
> public void stop() throws Exception{
> server.stop();
> }
>
>
>
> public static void main(String[] args) throws Exception {
> new ApacheFtpServer(CommonConstants.FTP_SERVER_DEFAULT_PORT);
> }
>
> }
>
>
>
> -----Original Message-----
> From: gary.bell@aero.bombardier.com [mailto:gary.bell@aero.bombardier.com]
> Sent: Thursday, January 22, 2009 12:32 PM
> To: ftpserver-users@mina.apache.org
> Subject: Re: IOException on ftp client disconnect
>
> You also get something similar using filezilla in SSL mode when it
> disconnects:
>
>
> [DEBUG] 2009-01-19 12:04:40,288 [] [] Unexpected exception from
> SSLEngine.closeInbound().
> javax.net.ssl.SSLException: Inbound closed before receiving peer's
> close_notify: possible truncation attack?
> at
> com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
> at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1356)
> at
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1324)
> at
>
> com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1263)
> at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:155)
> at
> org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:386)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.sessionClosed(DefaultIoFilterChain.java:598)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
> at
>
> org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:373)
> at
>
> org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:229)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:485)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor.remove(AbstractPollingIoProcessor.java:455)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:58)
> at
>
> org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:862)
> at
>
> org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> [ INFO] 2009-01-19 12:04:40,289 [gary] [172.25.72.185] CLOSED
>
>
> Best Regards,
>
> Gary
>
>
>
>
RE: IOException on ftp client disconnect
Posted by "Pitoniak, Michael" <mp...@enterasys.com>.
Here is my code....rather trivail usage case.
import java.io.File;
import org.apache.ftpserver.FtpServer;
import org.apache.ftpserver.FtpServerFactory;
import org.apache.ftpserver.listener.ListenerFactory;
import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
import common.CommonConstants;
public class ApacheFtpServer{
private FtpServer server = null;
public ApacheFtpServer(int port) throws Exception{
initialize(port);
}
private void initialize(int port) throws Exception{
FtpServerFactory serverFactory = new FtpServerFactory();
ListenerFactory factory = new ListenerFactory();
// set the port of the listener
factory.setPort(port);
// define SSL configuration
//SslConfigurationFactory ssl = new SslConfigurationFactory();
//ssl.setKeystoreFile(new File("support/apacheFtpServer/ftpserver.jks"));
//ssl.setKeystorePassword("password");
// set the SSL configuration for the listener
//factory.setSslConfiguration(ssl.createSslConfiguration());
//factory.setImplicitSsl(true);
// replace the default listener
serverFactory.addListener("default", factory.createListener());
PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();
userManagerFactory.setFile(new File(CommonConstants.FTP_USERS_PROPERTIES_FILE));
userManagerFactory.setPasswordEncryptor(new ClearTextPasswordEncryptor ());
serverFactory.setUserManager(userManagerFactory.createUserManager());
// start the server
server = serverFactory.createServer();
server.start();
}
public void suspend() throws Exception{
server.suspend();
}
public void resume() throws Exception{
server.resume();
}
public void stop() throws Exception{
server.stop();
}
public static void main(String[] args) throws Exception {
new ApacheFtpServer(CommonConstants.FTP_SERVER_DEFAULT_PORT);
}
}
-----Original Message-----
From: gary.bell@aero.bombardier.com [mailto:gary.bell@aero.bombardier.com]
Sent: Thursday, January 22, 2009 12:32 PM
To: ftpserver-users@mina.apache.org
Subject: Re: IOException on ftp client disconnect
You also get something similar using filezilla in SSL mode when it
disconnects:
[DEBUG] 2009-01-19 12:04:40,288 [] [] Unexpected exception from
SSLEngine.closeInbound().
javax.net.ssl.SSLException: Inbound closed before receiving peer's
close_notify: possible truncation attack?
at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1356)
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1324)
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1263)
at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:155)
at
org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:386)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.sessionClosed(DefaultIoFilterChain.java:598)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:373)
at
org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:229)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:485)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.remove(AbstractPollingIoProcessor.java:455)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:58)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:862)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
[ INFO] 2009-01-19 12:04:40,289 [gary] [172.25.72.185] CLOSED
Best Regards,
Gary
Re: IOException on ftp client disconnect
Posted by ga...@aero.bombardier.com.
You also get something similar using filezilla in SSL mode when it
disconnects:
[DEBUG] 2009-01-19 12:04:40,288 [] [] Unexpected exception from
SSLEngine.closeInbound().
javax.net.ssl.SSLException: Inbound closed before receiving peer's
close_notify: possible truncation attack?
at
com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:166)
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1356)
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1324)
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.closeInbound(SSLEngineImpl.java:1263)
at org.apache.mina.filter.ssl.SslHandler.destroy(SslHandler.java:155)
at
org.apache.mina.filter.ssl.SslFilter.sessionClosed(SslFilter.java:386)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$900(DefaultIoFilterChain.java:49)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.sessionClosed(DefaultIoFilterChain.java:817)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.sessionClosed(DefaultIoFilterChain.java:598)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextSessionClosed(DefaultIoFilterChain.java:378)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireSessionClosed(DefaultIoFilterChain.java:373)
at
org.apache.mina.core.service.IoServiceListenerSupport.fireSessionDestroyed(IoServiceListenerSupport.java:229)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.removeNow(AbstractPollingIoProcessor.java:485)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.remove(AbstractPollingIoProcessor.java:455)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:58)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:862)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
[ INFO] 2009-01-19 12:04:40,289 [gary] [172.25.72.185] CLOSED
Best Regards,
Gary
Re: IOException on ftp client disconnect
Posted by Niklas Gustavsson <ni...@protocol7.com>.
Hi
If I remember correctly, you get this error when the client closes the
TCP socket without sending the last ACK (or something similar). And I
think that FileZilla is an example of a client that sometimes does
that. However, as for the server, this shouldn't be a problem (maybe
we should lower the log level for that error).
/niklas
On Thu, Jan 22, 2009 at 4:50 PM, Pitoniak, Michael
<mp...@enterasys.com> wrote:
> Hi,
>
> I am using the FTPServer and it works fine, it is just that I get the following exception every time a client disconnects....
> Can someone let me know why I am seeing this? It does not originate from any of my code.
>
> Many thanks,
>
> mp
>
> ERROR java.io.IOException: An existing connection was forcibly closed by the remote host
> at sun.nio.ch.SocketDispatcher.read0(Native Method)
> at sun.nio.ch.SocketDispatcher.read(Unknown Source)
> at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
> at sun.nio.ch.IOUtil.read(Unknown Source)
> at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
> at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:175)
> at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:42)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:561)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:540)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:532)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:58)
> at org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:857)
> at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
>