java.io.IOException: Неверный файловый дескриптор Jetty 9.2.10.v20150310

Я запустил причал на безостановочном сервере на порту 18095, и он работал нормально, через несколько дней внезапно заметил, что он потребляет больше ЦП, и когда я проверяю журнал, заметил, что следующий журнал постоянно пишется.

    2015-07-08 13:25:48.606:WARN:oejs.ServerConnector:qtp26807578-18-acceptor-0@182e42f-ServerConnector@1f02fde {HTTP/1.1}{0.0.0.0:18095}:
java.io.IOException: Bad file descriptor (errno:4009)
        at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
        at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
        at org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:377)
        at org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:500)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
        at java.lang.Thread.run(Thread.java:724)

Есть ли способ исправить это. Спасибо


person vels4j    schedule 09.07.2015    source источник


Ответы (1)


«errno: 4009» находится за пределами самой Java.

Что-то в ОС (или файловой системе) препятствует принятию этого конкретного входящего сокета.

Если вы работаете в системе unix, рассмотрите возможность оценки различных значений ulimit и увеличения соответствующих значений в соответствии с вашими потребностями.

Если вы работаете в среде Windows, не запускайте Windows ME/2000 (поскольку у них долгая история проблем с JVM/ServerSocket).

person Joakim Erdfelt    schedule 09.07.2015
comment
спасибо за ваш ответ, я получаю эту ошибку на сервере hp-nonstop. Да, вы правы, 4009 исходит из ввода-вывода, кажется, что TCP-соединение разорвалось после того, как сервер открыл соединение. - person vels4j; 09.07.2015