Как решить проблему «Слишком много открытых файлов» в Hudson?

StackOverflow https://stackoverflow.com/questions/114914

Вопрос

Мы используем Хадсон как система непрерывной интеграции для выполнения автоматических сборок (ночных и на основе опросов CVS) многих наших проектов.

Некоторые проекты опрашивают CVS каждые 15 минут, другие — каждые 5 минут, а некоторые — каждый час.

Каждые несколько недель мы получаем сборку, которая завершается сбоем и выдаёт следующий результат:

FATAL: java.io.IOException: Too many open files
java.io.IOException: java.io.IOException: Too many open files
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)

Следующая сборка всегда работала (с 0 изменениями), поэтому мы всегда связывали это с двумя заданиями сборки, которые выполнялись одновременно и во время процесса открывалось слишком много файлов.

На этих выходных в пятницу вечером у нас произошел сбой сборки (автоматическая ночная сборка) с сообщением, и все остальные ночные сборки также не удались.Каким-то образом это побудило Хадсона постоянно создавать каждый проект, который терпел неудачу, пока проблема не была решена.В результате сборка каждого проекта выполнялась каждые 30 минут или около того, вплоть до субботнего вечера, когда проблема волшебным образом исчезла.

Это было полезно?

Решение

Это Хадсон, выпуск 715 (http://issues.hudson-ci.org/browse/HUDSON-715).Текущая рекомендация — установить «максимальное количество одновременных потоков опроса», чтобы снизить активность опроса.

Другие советы

Видеть https://wiki.jenkins-ci.org/display/JENKINS/I%27m+getting+too+many+open+files+error для того, что нам нужно от вас, чтобы решить такого рода проблемы.

Изменить системные ограничения на максимальное количество открытых файловых дескрипторов для каждого процесса?Как в ulimit -n для процесса Java?

У меня возникла эта проблема с другим Java-приложением, работающим в Debian, она исчезла, когда мы перешли на версию Java 1.6.0.0.Java никогда не закрывала неиспользуемые соединения, что приводило к выдаче исключения.

Одна из наиболее распространенных проблем, вызывающих «слишком много открытых файлов», — это включение и настройка плагина Active Directory в Jenkins.Существуют известные проблемы с этим плагином, которые приводят к появлению огромного количества потоков, а также к ошибке «Слишком много открытых файлов» в журналах.После его отключения и переключения на аутентификацию LDAP Дженкинс больше не зависал.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top