java.net.BindException: Address already in use
----------------------------------------------
Key: FTPSERVER-250
URL: https://issues.apache.org/jira/browse/FTPSERVER-250
Project: FtpServer
Issue Type: Bug
Components: Core
Affects Versions: 1.0.0-RC1
Environment: linux, windows
Reporter: Jiri Kuhn
I have configured ftp server to use particular interface and port on active
data mode like
<active enabled="true" local-address="127.0.0.1" local-port="2020"
ip-check="true"/>
After that, the server starts to throw java.net.BindException: Address already
in use during second and other data transfer. First data transfer is always ok.
It seems that it has something to do with TIME_WAIT tcp port state (as it can
be seen using netstat utility).
I have created two tests, one for serial execution and one for parallel
execution, see attached files (patch for ClientTestTemplate required)
- serial execution - emulates what I'm doing in command line ftp client (or any
other client), I'm always able to reproduce it on linux, but never on windows
xp sp2
- parallel execution - emulates situation when more then one data connection
has to be opened in one time, it fails with two clients on linux (but it may by
simple serial execution failure), on windows it fails with three clients
BUT - I have tested the parallel test against proftpd server (fixed data port
20) with 30 clients and none of them fails.
Are you able to reproduce the behaviour I have observed?
Does anyone with deeper knowledge of java socket programming know if it is
possible to bind a port once and then reuse it for generally unlimited number
of (simultaneous) connections?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.