Jenkins-java.lang.OutOfMemoryError: PermGen space -
environnement: Linux / Windows7, Java 1.6.0.03 / 37 ou 1.7
j'ai téléchargé jenkins.guerre et après la configuration initiale en utilisant le script/commande suivant, j'ai téléchargé quelques plugins (10-15) et essayé de redémarrer Jenkins, ça a marché. Ensuite, j'ai eu plus de plugins (30-40 au total) et soit J'ai choisi Install ou download+then+install, Jenkins n'est pas venu.
, c'est-à-dire en utilisant startJenkins.sh (Linux seulement). Note: sur Windows7 Jenkins a commencé comme une fenêtre service.
#!/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 "151900920" 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} &
initialement Je n'ai pas utilisé "-XX:MaxPermSize=4096m" paramètre mais dès que j'ai vu le message d'erreur suivant, j'ai essayé diverses valeurs comme 128/512/1024,2048,4096 m etc, n'a pas aidé avec l'erreur.
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 onAttained
INFO: Started initialization
Aug 1, 2013 1:17:16 PM jenkins.InitReactorRunner 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 onAttained
INFO: Prepared all plugins
Aug 1, 2013 1:17:32 PM hudson.ExtensionFinder$GuiceFinder$FaultTolerantScope error
WARNING: Failed to instantiate optional component org.jfrog.hudson.ivy.ArtifactoryIvyConfigurator$DescriptorImpl; skipping
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner onAttained
INFO: Started all plugins
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner onAttained
INFO: Augmented all extensions
Aug 1, 2013 1:17:32 PM jenkins.InitReactorRunner 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 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 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
ou, parfois, je vois:
30 Aug 1, 2013 1:50:29 AM jenkins.InitReactorRunner 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$
comment résoudre ce problème? Le même problème est apparu lorsque j'ai fait le même exercice sur ma machine de bureau Windows. Ai-je besoin pour utiliser moins ou limitée nombre de plugins?
Merci
2 réponses
Dans mon ~/.bash_profile file, j'ai défini les 3 variables suivantes. Notez qu'il y a d'autres variables dans ce fichier aussi bien JAVA_HOME, ANT_HOME, SONAR_HOME, SONAR_RUNNER_HOME, etc:
export JAVA_OPTS="-XX:MaxPermSize=512m -Xms512m -Xmx1024m"
export GRADLE_OPTS="-XX:MaxPermSize=512m"
export SONAR_RUNNER_OPTS="-Xmx512m -XX:MaxPermSize=512m"
Tout travail maintenant.
La première exportation de la ligne: obtenez Jenkins va sans PermGen erreur, la 2e ligne fera Gradle va quand Jenkins appelle Gradle script (via un autre script pour ex. .sh / etc), la troisième ligne fait "sonar-runner" commande de travailler bien (sinon, je recevais une erreur pour PermGen après "Initialize Hibernate"... ligne pendant la sortie de la commande sonar-runner). Vous exécutez la commande sonar-runner dans l'espace de travail où vous avez compilé java, des rapports liés aux outils d'analyse de code statique (pmd/checkstyle/findbugs) et d'autres rapports de couverture de code (jacoco/cobertura). Espace de travail doit avoir "sonar-project."propriétés de fichier. Cherchez les pages d'aide de SonarQube à propos de ce fichier et de toutes les variables qu'il contient projet.
toutes ces options sont documentées ici: http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html ou ici si vous utilisez Java 7: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html
si vous utilisez Gradle, vous pouvez définir le-XMX ou-XX:MaxPermSize en ajoutant une variable D'environnement global GRADLE_OPTS dans la configuration globale de Jenkins. Pour ce faire, cliquez sur Gérer Jenkins, puis Configurer le système. Dans la section propriétés globales, cliquez sur la case à cocher des Variables D'Environnement, puis ajoutez une nouvelle variable D'environnement appelée GRADLE_OPTS avec la valeur définie de manière appropriée comme ci-dessous:
name: GRADLE_OPTS
value: -Xmx1024m -XX:MaxPermSize=1024m
où 1024 est la mémoire spécifiée. Vous pouvez le modifier selon vos requireent.
une configuration similaire est nécessaire pour Maven. Veuillez voir le lien ci-dessous pour plus de détails: https://wiki.jenkins-ci.org/display/JENKINS/Builds+défaut+avec+OutOfMemoryErrors "151990920