你如何解决Hudson中“太多打开文件”的问题?

时间:2008-09-22 13:40:14

标签: java exception continuous-integration build-automation hudson

我们使用Hudson作为持续集成系统来执行许多项目的自动构建(每晚和基于CVS轮询)。

有些项目每15分钟轮询一次CVS,其他一些项目每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个更改),因此我们总是将它同时运行2个构建作业,并且在此过程中发生了太多文件。

本周末,我们在周五晚上(自动夜间构建)进行了构建失败,并显示了该消息,并且每个其他夜间构建也失败了。不知何故,这导致Hudson不断构建每个失败的项目,直到问题得到解决。这导致每个项目每30分钟左右建立一次,直到星期六晚上这个问题神奇地消失。

5 个答案:

答案 0 :(得分:4)

这是哈德森问题715( http://issues.hudson-ci.org/browse/HUDSON-715 )。目前的建议是设置“最大同时轮询线程数”以保持轮询活动的正常运行。

答案 1 :(得分:3)

请参阅https://wiki.jenkins-ci.org/display/JENKINS/I%27m+getting+too+many+open+files+error了解我们需要您解决此类问题的方法。

答案 2 :(得分:0)

更改每进程最大打开文件描述符的系统限制?与Java进程的ulimit -n一样?

答案 3 :(得分:0)

我在Debian上运行的另一个Java应用程序遇到了这个问题,当我们降级到Java版本1.6.0.0时它就消失了。 Java从未关闭未使用的连接,导致它抛出异常。

答案 4 :(得分:0)

导致&#34;打开文件太多的最常见问题之一&#34;是在Jenkins中启用和配置Active Directory插件。这个插件存在已知问题,导致出现大量线程,并且打开文件太多&#34;日志中的错误。在禁用它并切换到LDAP身份验证后,我没有遇到Jenkins再次挂起。