Erreur lors de l’exécution de Comstack sur un projet Grails de grande taille dans Jenkins: Limite de surcharge du GC

Je commence à comprendre mon esprit sur celui-ci.

J’ai Jenkins en cours d’exécution dans un conteneur Tomcat sur une boîte Windows Server 2008 RC 2. Nous avons un grand projet Grails ici au travail avec quelques plugins internes dépendants (quelque chose comme 10 d’entre eux). Une partie du processus consiste à exécuter

grails comstack 

Sur le projet (Utilisation du plugin Grails dans jenkins, Grails version 1.3.7)

Le travail commence bien, mais bombe sur cette étape avec l’erreur suivante:

 [groovyc] Compiling 103 source files to D:\jenkins\jobs\my-build-job\workspace\my-application\target\classes Compilation error: java.lang.OutOfMemoryError: GC overhead limit exceeded 

Je n’ai pas réussi à append des parameters à cette étape de construction particulière dans le champ “parameters” du plug-in Grails, et à append des parameters Java au conteneur de servlets de Tomcat (le Java typiquement recommandé par Internet pour cette erreur de surcharge GC). Voici une partie du wrapper.conf du servlet:

 wrapper.java.additional.8=-Xmx2048m wrapper.java.additional.9=-Xss256k wrapper.java.additional.10=-Xms1024m wrapper.java.additional.11=-XX:+UseParallelGC wrapper.java.additional.12=-XX:-UseGCOverheadLimit wrapper.java.additional.13=-XX:MaxPermSize=256m 

Quelqu’un at-il des idées / suggestions ?? J’ai l’impression que j’ai tout essayé pour donner à ce travail suffisamment de mémoire (la boîte contient 12 Go de RAM, et je veux dire, comme vous pouvez le voir ci-dessus, 256M de PermGen! Il ne devrait pas se plaindre des contraintes de ressources!)

S’il vous plaît aider!

    Eh bien, j’ai une solution pour ceux qui se heurtent à ce problème.

    JAVA_OPTS dans Windows semble être une bête difficile à définir et à conserver, mais en utilisant le plug-in EnvInject dans Jenkins, j’ai pu utiliser ce qui suit: https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

    Dans l’étape nouvellement ajoutée «Build Environment»,

    Cochez la case intitulée «Injecter des variables d’environnement dans le processus de génération».

    Et ajoutez ceci à la zone de texte ‘Propriétés Content’:

     JAVA_OPTS=-Xmx1024m -XX:MaxPermSize=256m 

    PAS DE CITATIONS SUR CELA!

    Comme je l’ai déjà dit, j’avais déjà résolu ce problème en paramétrant une variable JAVA_OPTS à l’échelle du système sur Windows (ce qui constituait un piratage excessif pour les besoins de notre serveur).

    J’espère que cela sera utile à d’autres utilisateurs Windows / Jenkins / Grails frustrés!