Мы используем Hudson в качестве системы непрерывной интеграции для выполнения автоматизированных сборок (каждую ночь и на основе опроса 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 минут или около того до тех пор, пока в субботу вечером проблема не исчезла.