2010-10-08 4 views
3

J'ai un problème avec l'esclave de construction Hudson qui a Windows XP 4 Go de RAM et dans le fichier de commandes pour appeler le JNLP I ont spécifier comme les suivants:Hudson build finit toujours dans "java.lang.OutOfMemoryError: Java tas d'espace" erreur

javaws -J-Xms1280m -J-Xmx1024m http://hudson-master.domain.com:8080/computer/Exige/slave-agent.jnlp

pourquoi je ne peux pas donner plus de 1 Go?

toute aide et suggestion seraient grandement appréciées.

Merci, AWT

 
The system is out of resources. 
Consult the following stack trace for details. 
java.lang.OutOfMemoryError: Java heap space 
     at com.sun.tools.javac.util.List.prepend(List.java:145) 
     at com.sun.tools.javac.jvm.ClassReader.openArchive(ClassReader.java:1457) 
     at com.sun.tools.javac.jvm.ClassReader.list(ClassReader.java:1742) 
     at com.sun.tools.javac.jvm.ClassReader.listAll(ClassReader.java:1882) 
     at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1903) 
     at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1538) 
     at com.sun.tools.javac.code.Symbol.complete(Symbol.java:355) 
     at com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:256) 
     at com.sun.tools.javac.tree.Tree$TopLevel.accept(Tree.java:382) 
     at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:221) 
     at com.sun.tools.javac.comp.Enter.classEnter(Enter.java:235) 
     at com.sun.tools.javac.comp.Enter.complete(Enter.java:448) 
     at com.sun.tools.javac.comp.Enter.main(Enter.java:433) 
     at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:404) 
     at com.sun.tools.javac.main.Main.compile(Main.java:592) 
     at com.sun.tools.javac.main.Main.compile(Main.java:544) 
     at com.sun.tools.javac.Main.compile(Main.java:85) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:585) 
     at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:420) 
     at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:141) 
     at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:493) 
     at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) 
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483) 
     at hudson.maven.agent.PluginManagerInterceptor.executeMojo(PluginManagerInterceptor.java:182) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:519) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332) 


[INFO] ------------------------------------------------------------------------ 
[INFO] For more information, run Maven with the -e switch [INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 34 seconds 
[INFO] Finished at: Fri Oct 08 17:27:59 EST 2010 [INFO] Final Memory: 25M/63M [INFO] ------------------------------------------------------------------------ 

Répondre

1

Si vous avez la configuration maître-esclave, vous devez spécifier les paramètres de la mémoire dans la fonction Gérer Hudson-> Configurer Système-> Propriétés globales

Le genre de propriétés présentes sur l'environnement maître sont utilisés dans des esclaves aussi.

4

Le Xms devrait généralement être inférieure à la Xmx

+0

vous avez besoin de l'indicateur '-J' pour passer les arguments JVM à' javaws' (Java Web Start). – dogbane

+0

@fahd merci. retiré ce point – Bozho

+0

ah oui, merci pour votre réponse, mais la valeur ne peut toujours pas être supérieure à 1 Go? Je ne sais pas pourquoi, ce PC a 3,24 Go utilisables sous Windows XP msinfo32. –

3

est la construction exécutée directement par la machine virtuelle Java de l'agent esclave? Si vous exécutez une construction Maven (par exemple), l'agent esclave peut lancer un processus Maven externe (avec Java Xmx par défaut).

Vous devez donc spécifier le paramètre MAVEN_OPTS pour vous assurer que les générations Maven sont toujours exécutées avec une valeur Xmx personnalisée.

+0

+1, bon point à propos de maven – Bozho

+0

Merci l'homme pour votre réponse, alors dans ce cas, je devrais aller au serveur HUDSON et changer cette valeur? (quel fichier et où?) –

+0

merci Benoit, C'est une option maven dans Hudson pour lui permettre d'allouer plus de mémoire à JVM lors de l'exécution de maven build. cela fonctionne maintenant sans erreur après avoir fait les changements dans le serveur (via la console Web). –

1

Veuillez noter: Sur Windows 32 bits, une machine virtuelle Java ne peut pas allouer plus d'environ 1 Go. Ne me demandez pas pourquoi, mais c'est le cas (du moins c'est le cas pour la JVM Sun). Vous avez besoin d'un système 64 bits si vous avez besoin de plus de mémoire pour votre JVM. Et une JVM 64 bits, bien sûr.

Questions connexes