Alex Karasulu wrote:
Trustin,
Sometimes this test passes and sometimes it gives me the following error:
-------------------------------------------------------------------------------
Battery: org.apache.mina.transport.socket.nio.DatagramBindTest
-------------------------------------------------------------------------------
Tests run: 3, Failures: 0, Errors: 1, Time elapsed: 0.186 sec
testManyTimes(org.apache.mina.transport.socket.nio.DatagramBindTest)
Time elapsed: 0.178 sec <<< ERROR!
[ stdout ]
---------------------------------------------------------------
[ stderr ]
---------------------------------------------------------------
[ stacktrace ]
-----------------------------------------------------------
java.lang.Error: java.net.SocketException: Too many open files
at
sun.nio.ch.DatagramSocketAdaptor.create(DatagramSocketAdaptor.java:53)
at
sun.nio.ch.DatagramChannelImpl.socket(DatagramChannelImpl.java:100)
at
org.apache.mina.transport.socket.nio.support.DatagramAcceptorDelegate.registerNew(DatagramAcceptorDelegate.java:499)
at
org.apache.mina.transport.socket.nio.support.DatagramAcceptorDelegate.access$1000(DatagramAcceptorDelegate.java:49)
at
org.apache.mina.transport.socket.nio.support.DatagramAcceptorDelegate$Worker.run(DatagramAcceptorDelegate.java:260)
Caused by: java.net.SocketException: Too many open files
at java.net.PlainDatagramSocketImpl.datagramSocketCreate(Native
Method)
at
java.net.PlainDatagramSocketImpl.create(PlainDatagramSocketImpl.java:73)
at java.net.DatagramSocket.createImpl(DatagramSocket.java:317)
at java.net.DatagramSocket.<init>(DatagramSocket.java:208)
at
sun.nio.ch.DatagramSocketAdaptor.<init>(DatagramSocketAdaptor.java:45)
at
sun.nio.ch.DatagramSocketAdaptor.create(DatagramSocketAdaptor.java:51)
... 4 more
Any ideas? Oh btw I made one change to the abstract test to remove
SSL dependency which seemed unnecessary however I could be mistaken
and will revert if need be. I basically remove the dep on the Echo
server example and just added it as an inner class for this base test
case. There was one line in the echo handler that is different:
// We're going to use SSL negotiation notification.
session.setAttribute( SSLFilter.USE_NOTIFICATION );
This is the missing line in the inner class EchoProtocolHandler within
AbstractBindTest.
Also note that my ulimit is set to unlimited so there's little chance
(or it seems) of this being a file descriptor issue.
Alex