Domanda

Utilizziamo Hudson come sistema di integrazione continua per eseguire build automatizzate (di notte e basate sul polling CVS) di molti dei nostri progetti.

Alcuni progetti sondano CVS ogni 15 minuti, altri sondano ogni 5 minuti e alcuni sondano ogni ora.

Ogni poche settimane avremo una build che fallisce con il seguente output:

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 build successiva ha sempre funzionato (con 0 modifiche), quindi l'abbiamo sempre contrassegnata con un massimo di 2 lavori di build in esecuzione contemporaneamente e durante l'apertura abbiamo troppi file aperti.

Questo fine settimana abbiamo avuto un errore di build venerdì sera (build notturno automatico) con il messaggio e anche ogni altro build notturno non è riuscito. In qualche modo, ciò ha indotto Hudson a costruire continuamente ogni progetto fallito fino alla risoluzione del problema. Ciò ha comportato una compilazione ogni 30 minuti circa di ogni progetto fino al sabato sera, quando il problema è magicamente scomparso.

È stato utile?

Soluzione

Questo è il numero 715 di Hudson ( http: //issues.hudson- ci.org/browse/HUDSON-715 ). L'attuale raccomandazione è di impostare il "numero massimo di thread di polling simultanei" per mantenere bassa l'attività di polling.

Altri suggerimenti

Vedi https: //wiki.jenkins-ci.org/display/JENKINS/I%27m+getting+too+many+open+files+error per ciò di cui abbiamo bisogno per risolvere questo tipo di problema.

Modifica i limiti di sistema per i descrittori di file aperti massimo per processo? Come in ulimit -n per il processo Java?

Ho riscontrato questo problema con un'altra applicazione Java in esecuzione su Debian, è andata via quando abbiamo effettuato il downgrade alla versione 1.6.0.0 di Java. Java non ha mai chiuso le connessioni inutilizzate, causando l'eccezione.

Uno dei problemi più comuni che causano " Troppi file aperti " deve avere il plug-in di Active Directory abilitato e configurato in Jenkins. Esistono problemi noti con questo plugin che causano la visualizzazione di un numero enorme di thread e "Troppi file aperti" errore anche nei registri. Dopo averlo disabilitato e passato all'autenticazione LDAP non ho più avuto problemi con Jenkins.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top