2013-08-01 23 views
5

Ambiente: Linux/Windows7, Java 1.6.0.03/37 o 1.7Jenkins - java.lang.OutOfMemoryError: PermGen spazio -

ho scaricato jenkins.war e dopo la configurazione iniziale utilizzando il seguente script/comando io scaricato alcuni plugin (10-15) e provato a riavviare Jenkins, ha funzionato. Poi, ho avuto altri plugin (30-40 in totale) e ho scelto Installa o scarica + poi + installa, Jenkins non è uscito.

, ad esempio utilizzando startJenkins.sh (solo Linux). Nota: su Windows 7 Jenkins è stato avviato come servizio di Windows.

#!/bin/bash 
export JAVA_HOME=/production/jenkinsAKS/java/jdk1.6.0_03 
export JENKINS_HOME=/production/jenkinsAKS 
export PATH=${JAVA_HOME}/bin:${PATH} 
export JENKINS_HTTP_PORT=9040 
export JENKINS_AJP13_PORT=9949 
now=`date +%Y%m%d_%H%M%S` 

echo $0 begins ${now} 
echo " java-home=${JAVA_HOME}, jenkins-home=${JENKINS_HOME}, path=${PATH}" 
java -jar ${JENKINS_HOME}/lib/jenkins.war -XX:MaxPermSize=4096m --logfile=${JENKINS_HOME}/log/jenkins.log${now} --httpPort=${JENKINS_HTTP_PORT} --ajp13Port=${JENKINS_AJP13_PORT} & 

Inizialmente non ho usato "XX: MaxPermSize = 4096m" parametro, ma non appena ho visto il seguente messaggio di errore, ho provato diversi valori come 128/512/1024,2048,4096m etc, didn Aiuta con l'errore.

INFO: Beginning extraction from war file 
Jenkins home directory: /production/jenkinsAKS found at: EnvVars.masterEnvVars.get("JENKINS_HOME") 
Aug 1, 2013 1:17:15 PM winstone.Logger logInternal 
INFO: HTTP Listener started: port=9040 
Aug 1, 2013 1:17:15 PM winstone.Logger logInternal 
INFO: AJP13 Listener started: port=9949 
Aug 1, 2013 1:17:15 PM winstone.Logger logInternal 
INFO: Winstone Servlet Engine v0.9.10 running: controlPort=disabled 
Aug 1, 2013 1:17:16 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Started initialization 
Aug 1, 2013 1:17:16 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Listed all plugins 
Aug 1, 2013 1:17:16 PM hudson.plugins.ansicolor.PluginImpl start 
INFO: AnsiColor: eliminating boring output (https://github.com/dblock/jenkins-ansicolor-plugin) 
Aug 1, 2013 1:17:16 PM org.jvnet.hudson.plugins.backup.BackupPluginImpl loadConfiguration 
INFO: Loading configuration... 
Aug 1, 2013 1:17:16 PM org.jvnet.hudson.plugins.backup.utils.BackupPersistence loadConfig 
INFO: Config file not found. 
Aug 1, 2013 1:17:18 PM ruby.RubyRuntimePlugin start 
INFO: Injecting JRuby into XStream 
Trying to load models from /production/jenkinsAKS/plugins/pathignore/WEB-INF/classes/models 
Loading /production/jenkinsAKS/plugins/pathignore/WEB-INF/classes/models/pathignore_wrapper.rb 
Aug 1, 2013 1:17:26 PM hudson.plugins.greenballs.PluginImpl start 
INFO: Green Balls! 
Aug 1, 2013 1:17:26 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Prepared all plugins 
Aug 1, 2013 1:17:32 PM hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope$1 error 
WARNING: Failed to instantiate optional component org.jfrog.hudson.ivy.ArtifactoryIvyConfigurator$DescriptorImpl; skipping 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Started all plugins 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Augmented all extensions 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Loaded all jobs 
Aug 1, 2013 1:17:32 PM hudson.plugins.scm_sync_configuration.ScmSyncConfigurationBusiness queueChangeSet 
INFO: Queue of changeset  A hudson.model.UpdateCenter.xml 
aborted (scm manipulator not settled !) 
Aug 1, 2013 1:17:32 PM org.jenkinsci.main.modules.sshd.SSHD start 
INFO: Started SSHD at port 36227 
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner$1 onAttained 
INFO: Completed initialization 
Aug 1, 2013 1:17:32 PM hudson.TcpSlaveAgentListener <init> 
INFO: JNLP slave agent listener started on TCP port 46056 
The following triggers are available for your jobs 
[Trigger] - Build periodically 
[Trigger] - Build when another project is promoted 
[Trigger] - Maven Dependency Update Trigger 
[Trigger] - Poll SCM 
[Trigger] - [BuildResultTrigger] - Monitor build results of other jobs 
[Trigger] - [FSTrigger] - Monitor files 
[Trigger] - [FSTrigger] - Monitor folder 
[Trigger] - [IvyTrigger] - Poll with an Ivy script 
[Trigger] - [ScriptTrigger] - Poll with a Groovy script 
[Trigger] - [ScriptTrigger] - Poll with a shell or batch script 
[Trigger] - [URLTrigger] - Poll with a URL 
Aug 1, 2013 1:17:33 PM hudson.WebAppMain$2 run 
INFO: Jenkins is fully up and running 
Exception in thread "Jenkins cron thread" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "JmDNS(sagrdev3sb12.local.).State.Timer" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "ConnectorThread:[http-9040]" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "JmDNS(sagrdev3sb12.local.).Timer" java.lang.OutOfMemoryError: PermGen space 
Exception in thread "WinstoneHostConfigurationMgmt:default" java.lang.OutOfMemoryError: PermGen space 

o, a volte vedo:

30 Aug 1, 2013 1:50:29 AM jenkins.InitReactorRunner$1 onAttained 
    31 INFO: Prepared all plugins 
    32 Exception in thread "pool-2-thread-20" java.lang.OutOfMemoryError: PermGen space 
    33 Aug 1, 2013 1:51:10 AM winstone.Logger logInternal 
    34 WARNING: Untrapped Error in Servlet 
    35 java.lang.OutOfMemoryError: PermGen space 
    36 Aug 1, 2013 1:51:12 AM winstone.Logger logInternal 
    37 SEVERE: Error in the error servlet 
    38 java.lang.OutOfMemoryError: PermGen space 
    39 Exception in thread "Jenkins cron thread" java.lang.OutOfMemoryError: PermGen space 
-bash-3.2$ 

Come posso risolvere questo problema? Lo stesso problema è emerso quando ho fatto lo stesso esercizio sul mio computer desktop Windows. Devo usare meno o un numero limitato di plugin?

Grazie

+1

Ho usato il numero minimo di plugin, funziona ora.ma dubito che non appena avrò scaricato altro sulla strada, questo problema dello spazio permGen tornerà sicuramente di sicuro –

+0

Hai mai capito quali plugin o dopo quanti plug-in è iniziato l'errore PermGen? – Illidanek

risposta

9

Nel mio file ~/.bash_profile, ho impostato i seguenti 3 variabili. Nota: ci sono altre variabili in questo file così vale a dire JAVA_HDME, ANT_HOME, SONAR_HOME, SONAR_RUNNER_HOME, ecc:

export JAVA_OPTS="-XX:MaxPermSize=512m -Xms512m -Xmx1024m" 
export GRADLE_OPTS="-XX:MaxPermSize=512m" 
export SONAR_RUNNER_OPTS="-Xmx512m -XX:MaxPermSize=512m" 

Tutto - ora di lavoro.

La prima linea di esportazione: otterrà Jenkins senza errore PermGen, la seconda riga farà andare Gradle quando Jenkins chiama lo script Gradle (tramite un altro script wrapper per ex .sh/etc), la terza riga rende "sonar- runner "per funzionare correttamente (altrimenti, ho ricevuto un errore per PermGen dopo" Initialize Hibernate "... durante l'output del comando del sonar-runner). Si esegue il comando sonar-runner nell'area di lavoro in cui è stato compilato java, i report relativi agli strumenti di analisi del codice statico (pmd/checkstyle/findbugs) e altri report di copertura del codice (jacoco/cobertura). Lo spazio di lavoro dovrebbe avere il file "sonar-project.properties". Cerca le pagine di aiuto di SonarQube su questo file e quali sono tutte le variabili che contiene per un progetto.

Tutte queste opzioni sono documentate qui: http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html o qui se si utilizza Java 7: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

0

se si utilizza Gradle, è possibile impostare il -Xmx o -XX: MaxPermSize con l'aggiunta di un GRADLE_OPTS variabile globale dell'ambiente nella configurazione globale di Jenkins. Per fare ciò, fai clic su Gestisci Jenkins, quindi su Configura sistema. Nella sezione Proprietà globali, fare clic sulla casella di controllo Variabili d'ambiente, quindi aggiungere una nuova variabile d'ambiente chiamata GRADLE_OPTS con il valore impostato in modo appropriato, come di seguito:

name: GRADLE_OPTS value: -Xmx1024m -XX:MaxPermSize=1024m

dove 1024 è memoria specificata. Puoi cambiarlo secondo il tuo bisogno.

Per Maven è necessaria una configurazione simile. Si prega di vedere il link sottostante per ulteriori dettagli: https://wiki.jenkins-ci.org/display/JENKINS/Builds+failing+with+OutOfMemoryErrors

Problemi correlati