Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6693490

(se) select throws "File exists" IOException under load (lnx)

XMLWordPrintable

    • b55
    • x86
    • linux

        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.

              alanb Alan Bateman
              ndcosta Nelson Dcosta (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: