FULL PRODUCT VERSION :
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux slab 2.6.22-14-generic #1 SMP Tue Feb 12 07:42:25 UTC 2008 i686 GNU/Linux
EXTRA RELEVANT SYSTEM CONFIGURATION :
centrino duo in lenovo 761p running ubuntu
also seen on amazon EC2 nodes running redhat
A DESCRIPTION OF THE PROBLEM :
When using java 1.6 with moderate load, a call to select returns an IOException
with a message "File exists".
The same code runs without a problem on java 1.5
If the exception is ignored, and the select re-called, the code appears to work without problem. However, as the load increases, the rate these exception are generated increases and causes a significant loss of performance.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
I get this issue running the cometd demo with the BayeuxLoadGenerator that is included in the Jetty-6.1.7 release.
The -DIGNORED parameter needs to be passed so that the stack if visible.
Once over 1000 connections are established, this exception happens frequently whenever load is applied.
I am very happy to run tests and provide strace output etc as needed.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
No exception
ACTUAL -
exception thrown
ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.io.IOException: File exists
at sun.nio.ch.EPollArrayWrapper.epollCtl(Native Method)
at sun.nio.ch.EPollArrayWrapper.updateRegistrations(EPollArrayWrapper.java:202)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:183)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:406)
at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:166)
at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:515)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
REPRODUCIBILITY :
This bug can be reproduced always.
CUSTOMER SUBMITTED WORKAROUND :
Ignore the exception, however performance is significantly reduced.