Hudson で「開いているファイルが多すぎる」問題を解決するにはどうすればよいですか?

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

質問

を使用しております ハドソン 多くのプロジェクトの自動ビルド (夜間および CVS ポーリングに基づく) を実行するための継続的統合システムとして。

CVS を 15 分ごとにポーリングするプロジェクトもあれば、5 分ごとにポーリングするプロジェクト、1 時間ごとにポーリングするプロジェクトもあります。

数週間ごとに、ビルドが失敗し、次の出力が表示されます。

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)

次のビルドは常に機能しました (変更なし)。そのため、2 つのビルド ジョブが同時に実行され、プロセス中に開いているファイルが多すぎることが原因であると常に考えていました。

今週末、金曜日の夜にビルドが失敗し (毎晩の自動ビルド) というメッセージが表示され、他の毎晩のビルドもすべて失敗しました。どういうわけか、これがきっかけとなり、ハドソンは問題が解決されるまで、失敗したすべてのプロジェクトを継続的にビルドするようになりました。その結果、土曜日の夜のある時点で問題が魔法のように消えるまで、すべてのプロジェクトで約 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プロセス用?

Debian 上で実行されている別の Java アプリケーションでこの問題が発生しましたが、Java バージョン 1.6.0.0 にダウングレードすると問題は解決しました。Java は未使用の接続を決して閉じないため、例外がスローされます。

「開いているファイルが多すぎる」原因となる最も一般的な問題の 1 つは、Jenkins で Active Directory プラグインを有効にして構成していることです。このプラグインには、膨大な数のスレッドが表示され、ログに「開いているファイルが多すぎます」というエラーが表示される既知の問題があります。これを無効にして LDAP 認証に切り替えた後、Jenkins がハングすることはなくなりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top