7

我们使用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 分钟左右构建一次,直到周六晚上某个时候问题神奇地消失了。

4

5 回答 5

4

这是哈德逊问题 715 ( http://issues.hudson-ci.org/browse/HUDSON-715 )。当前的建议是设置“同时轮询线程的最大数量”以保持轮询活动停止。

于 2009-07-16T17:39:32.393 回答
3

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

于 2010-01-22T16:42:46.350 回答
0

更改每个进程最大打开文件描述符的系统限制?至于ulimit -nJava进程?

于 2008-09-22T13:45:00.463 回答
0

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

于 2009-07-16T17:54:49.867 回答
0

导致“打开的文件过多”的最常见问题之一是在 Jenkins 中启用和配置了 Active Directory 插件。此插件存在已知问题,这些问题会导致显示大量线程以及日志中出现“打开的文件过多”错误。禁用它并切换到 LDAP 身份验证后,我不再体验 Jenkins 挂起。

于 2014-08-13T07:58:58.330 回答