6

Nous utilisons Hudson comme un système d'intégration continue pour exécuter des builds automatisés (tous les soirs et basés sur l'interrogation CVS) de beaucoup de nos projets.Comment résoudre le problème "Trop de fichiers ouverts" dans Hudson?

Certains projets interrogent CVS toutes les 15 minutes, d'autres interrogent toutes les 5 minutes et certains sondages toutes les heures.

Toutes les quelques semaines, nous aurons une génération qui échoue avec la sortie suivante:

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) 

La construction suivante a travaillé toujours (avec 0 changements) donc nous avons toujours écrit à la craie il jusqu'à 2 créer des emplois en cours d'exécution à en même temps et arrive à avoir trop de fichiers ouverts au cours du processus.

Ce week-end, nous avons eu une erreur de construction vendredi soir (génération nocturne automatique) avec le message et tous les autres soirs ont également échoué. D'une manière ou d'une autre, cela a incité Hudson à construire de façon continue tous les projets qui ont échoué jusqu'à ce que le problème soit résolu. Cela a donné lieu à une construction toutes les 30 minutes environ de chaque projet jusqu'au samedi soir où le problème a disparu comme par magie.

Répondre

4

Ceci est le numéro d'Hudson 715 (http://issues.hudson-ci.org/browse/HUDSON-715). La recommandation actuelle consiste à définir le «nombre maximal de threads d'interrogation simultanés» pour réduire l'activité d'interrogation.

+0

Lien brisé pour le problème 715. Pouvez-vous mettre à jour? –

0

Modifier les limites système pour les descripteurs de fichiers ouverts maximum par processus? Comme dans ulimit -n pour le processus Java?

0

J'ai rencontré ce problème avec une autre application Java exécutée sur Debian, elle est partie lorsque nous avons été rétrogradés vers Java version 1.6.0.0. Java n'a jamais fermé les connexions inutilisées, ce qui a provoqué l'exception.

3

Voir https://wiki.jenkins-ci.org/display/JENKINS/I%27m+getting+too+many+open+files+error pour ce que nous avons besoin de vous pour résoudre ce genre de problème.

+0

Nous n'avons pas eu le problème depuis longtemps. Si cela se reproduit, je serai sûr d'envoyer l'information demandée. – Randyaa

+0

Kohsuke - peut-être une amélioration Jenkins pourrait être de garder un œil sur les limites de descripteur de fichier et d'auto-réparation en exécutant le GC alors? Nous fonctionnons sur des boîtes avec de grandes tailles de mémoire (bientôt dans la gamme 96G), donc il peut fonctionner pendant un certain temps avant d'essayer GC. –

+0

Cela ressemble à un super hack! Où est le RFE dans http://issues.jenkins-ci.org/? :-) –

0

L'un des problèmes les plus fréquents provoquant "Trop de fichiers ouverts" est l'activation et la configuration de l'extension Active Directory dans Jenkins. Il y a des problèmes connus avec ce plugin qui font apparaître un nombre énorme de threads et une erreur "Too many open files" dans les logs. Après l'avoir désactivé et avoir basculé vers l'authentification LDAP, je n'ai plus vu Jenkins se bloquer.

Questions connexes