running out of PermGen space

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

running out of PermGen space

Reucroft, Miles A

On the project I work on, we’ve used the cobertura plugin in our Jenkins setup and have seen it work quite successfully. As the code base has grown, suddenly the instrument phase stopped working causing the build to break. The error we see is:

 

java.lang.OutOfMemoryError: PermGen space

 

[INFO] ------------------------------------------------------------------------

[ERROR] BUILD ERROR

[INFO] ------------------------------------------------------------------------

[INFO] Unable to instrument project.

[INFO] ------------------------------------------------------------------------

[INFO] Trace

org.apache.maven.lifecycle.LifecycleExecutionException: Unable to instrument project.

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1205)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1038)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:643)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)

        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)

        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)

        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)

        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)

        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to instrument

        at org.codehaus.mojo.cobertura.tasks.InstrumentTask.execute(InstrumentTa

        at org.codehaus.mojo.cobertura.CoberturaInstrumentMojo.execute(Cobertura

        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa

        ... 21 more

 

 

The stack trace for the maven process showed that a thread had launched another unix process as follows:

 

"main" prio=10 tid=0x000000004dc0e800 nid=0x6371 in Object.wait() [0x0000000040208000]

   java.lang.Thread.State: WAITING (on object monitor)

        at java.lang.Object.wait(Native Method)

        - waiting on <0x00002aab4b0adfc0> (a java.lang.UNIXProcess)

        at java.lang.Object.wait(Object.java:485)

        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:165)

        - locked <0x00002aab4b0adfc0> (a java.lang.UNIXProcess)

        at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:173)

        at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:107)

        at org.codehaus.mojo.cobertura.tasks.AbstractTask.executeJava(AbstractTask.java:240)

        at org.codehaus.mojo.cobertura.tasks.InstrumentTask.execute(InstrumentTask.java:139)

        at org.codehaus.mojo.cobertura.CoberturaInstrumentMojo.execute(CoberturaInstrumentMojo.java:162)

        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1205)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1038)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:643)

       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)

        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)

        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)

        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)

        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)

        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:597)

        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)

        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

 

a “ps” command showed the following processes:

 

rio       8466 25455 69 09:53 pts/9    00:00:43 /apps/rio/java/jdk1.6.0_16/jre/bin/java -Dlog4j.configuration=file:/tmp/log4j2167877154140163456config.properties -Xmx2g net.sourceforge.cobertura.instrument.Main --commandsfile /tmp/cobertura.2442776268684354806.cmdline

rio      10541  3350  0 09:54 pts/1    00:00:00 grep 25455

rio      25455  9484 24 09:45 pts/9    00:02:09 /apps/rio/java/jdk1.6.0_16/bin/java -Xms2g -Xmx2g -XX:PermSize=1g -Dmaven.repo.local=/local/rio/cache4/maven/m2-repo -classpath /apps/rio/apache-maven-2.2.1/boot/classworlds-1.1.jar -Dclassworlds.conf=/apps/rio/apache-maven-2.2.1/bin/m2.conf -Dmaven.home=/apps/rio/apache-maven-2.2.1 org.codehaus.classworlds.Launcher "-e" "-Dmri.skip.test=false" "-Djava.awt.headless=true" "clean" "cobertura:cobertura"

 

It seems clear that the “net.sourceforge.cobertura.instrument.Main” jvm is running out of PermGen space. I was looking for some kind of hook to add a “-XX:PermSize” argument but after looking at the source code for org.codehaus.mojo.cobertura.tasks.AbstractTask.executeJava, it seems like there is no way to add the additional arg. Can some mechanism be created to do that or did I miss something?

 

 

This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email.

Reply | Threaded
Open this post in threaded view
|

RE: running out of PermGen space

John Dix

We encounter this error all the time unless we set the maven options like so: export MAVEN_OPTS="-Xms1024m -Xmx3076m -XX:MaxPermSize=512m -Duser.timezone=UTC"

 

From: Reucroft, Miles A [mailto:[hidden email]]
Sent: Friday, August 30, 2013 11:16 AM
To: [hidden email]
Subject: [mojo-user] running out of PermGen space

 

On the project I work on, we’ve used the cobertura plugin in our Jenkins setup and have seen it work quite successfully. As the code base has grown, suddenly the instrument phase stopped working causing the build to break. The error we see is:

 

java.lang.OutOfMemoryError: PermGen space

 

[INFO] ------------------------------------------------------------------------

[ERROR] BUILD ERROR

[INFO] ------------------------------------------------------------------------

[INFO] Unable to instrument project.

[INFO] ------------------------------------------------------------------------

[INFO] Trace

org.apache.maven.lifecycle.LifecycleExecutionException: Unable to instrument project.

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1205)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1038)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:643)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)

        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)

        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)

        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)

        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)

        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to instrument

        at org.codehaus.mojo.cobertura.tasks.InstrumentTask.execute(InstrumentTa

        at org.codehaus.mojo.cobertura.CoberturaInstrumentMojo.execute(Cobertura

        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa

        ... 21 more

 

 

The stack trace for the maven process showed that a thread had launched another unix process as follows:

 

"main" prio=10 tid=0x000000004dc0e800 nid=0x6371 in Object.wait() [0x0000000040208000]

   java.lang.Thread.State: WAITING (on object monitor)

        at java.lang.Object.wait(Native Method)

        - waiting on <0x00002aab4b0adfc0> (a java.lang.UNIXProcess)

        at java.lang.Object.wait(Object.java:485)

        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:165)

        - locked <0x00002aab4b0adfc0> (a java.lang.UNIXProcess)

        at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:173)

        at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:107)

        at org.codehaus.mojo.cobertura.tasks.AbstractTask.executeJava(AbstractTask.java:240)

        at org.codehaus.mojo.cobertura.tasks.InstrumentTask.execute(InstrumentTask.java:139)

        at org.codehaus.mojo.cobertura.CoberturaInstrumentMojo.execute(CoberturaInstrumentMojo.java:162)

        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1205)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1038)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:643)

       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)

        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)

        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)

        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)

        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)

        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:597)

        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)

        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

 

a “ps” command showed the following processes:

 

rio       8466 25455 69 09:53 pts/9    00:00:43 /apps/rio/java/jdk1.6.0_16/jre/bin/java -Dlog4j.configuration=file:/tmp/log4j2167877154140163456config.properties -Xmx2g net.sourceforge.cobertura.instrument.Main --commandsfile /tmp/cobertura.2442776268684354806.cmdline

rio      10541  3350  0 09:54 pts/1    00:00:00 grep 25455

rio      25455  9484 24 09:45 pts/9    00:02:09 /apps/rio/java/jdk1.6.0_16/bin/java -Xms2g -Xmx2g -XX:PermSize=1g -Dmaven.repo.local=/local/rio/cache4/maven/m2-repo -classpath /apps/rio/apache-maven-2.2.1/boot/classworlds-1.1.jar -Dclassworlds.conf=/apps/rio/apache-maven-2.2.1/bin/m2.conf -Dmaven.home=/apps/rio/apache-maven-2.2.1 org.codehaus.classworlds.Launcher "-e" "-Dmri.skip.test=false" "-Djava.awt.headless=true" "clean" "cobertura:cobertura"

 

It seems clear that the “net.sourceforge.cobertura.instrument.Main” jvm is running out of PermGen space. I was looking for some kind of hook to add a “-XX:PermSize” argument but after looking at the source code for org.codehaus.mojo.cobertura.tasks.AbstractTask.executeJava, it seems like there is no way to add the additional arg. Can some mechanism be created to do that or did I miss something?

 

 

This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email.

This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement, you may review at http://www.amdocs.com/email_disclaimer.asp
Reply | Threaded
Open this post in threaded view
|

RE: running out of PermGen space

Reucroft, Miles A

We had MAVEN_OPTS set to “-Xms2g -Xmx2g -XX:PermSize=1g”. u can see the settings for  pid 25455  below. Those settings, unfortunately, didn’t percolate to the child process pid 8466. I’m thinking that its pid 8466 that is running out of PermGen.

 

From: John Dix [mailto:[hidden email]]
Sent: Friday, August 30, 2013 2:20 PM
To: [hidden email]
Subject: [mojo-user] RE: running out of PermGen space

 

We encounter this error all the time unless we set the maven options like so: export MAVEN_OPTS="-Xms1024m -Xmx3076m -XX:MaxPermSize=512m -Duser.timezone=UTC"

 

From: Reucroft, Miles A [[hidden email]]
Sent: Friday, August 30, 2013 11:16 AM
To: [hidden email]
Subject: [mojo-user] running out of PermGen space

 

On the project I work on, we’ve used the cobertura plugin in our Jenkins setup and have seen it work quite successfully. As the code base has grown, suddenly the instrument phase stopped working causing the build to break. The error we see is:

 

java.lang.OutOfMemoryError: PermGen space

 

[INFO] ------------------------------------------------------------------------

[ERROR] BUILD ERROR

[INFO] ------------------------------------------------------------------------

[INFO] Unable to instrument project.

[INFO] ------------------------------------------------------------------------

[INFO] Trace

org.apache.maven.lifecycle.LifecycleExecutionException: Unable to instrument project.

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1205)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1038)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:643)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)

        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)

        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)

        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)

        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)

        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to instrument

        at org.codehaus.mojo.cobertura.tasks.InstrumentTask.execute(InstrumentTa

        at org.codehaus.mojo.cobertura.CoberturaInstrumentMojo.execute(Cobertura

        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa

        ... 21 more

 

 

The stack trace for the maven process showed that a thread had launched another unix process as follows:

 

"main" prio=10 tid=0x000000004dc0e800 nid=0x6371 in Object.wait() [0x0000000040208000]

   java.lang.Thread.State: WAITING (on object monitor)

        at java.lang.Object.wait(Native Method)

        - waiting on <0x00002aab4b0adfc0> (a java.lang.UNIXProcess)

        at java.lang.Object.wait(Object.java:485)

        at java.lang.UNIXProcess.waitFor(UNIXProcess.java:165)

        - locked <0x00002aab4b0adfc0> (a java.lang.UNIXProcess)

        at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:173)

        at org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:107)

        at org.codehaus.mojo.cobertura.tasks.AbstractTask.executeJava(AbstractTask.java:240)

        at org.codehaus.mojo.cobertura.tasks.InstrumentTask.execute(InstrumentTask.java:139)

        at org.codehaus.mojo.cobertura.CoberturaInstrumentMojo.execute(CoberturaInstrumentMojo.java:162)

        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkProjectLifecycle(DefaultLifecycleExecutor.java:1205)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.forkLifecycle(DefaultLifecycleExecutor.java:1038)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:643)

       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)

        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)

        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)

        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)

        at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)

        at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)

        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:597)

        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)

        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)

        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

 

a “ps” command showed the following processes:

 

rio       8466 25455 69 09:53 pts/9    00:00:43 /apps/rio/java/jdk1.6.0_16/jre/bin/java -Dlog4j.configuration=file:/tmp/log4j2167877154140163456config.properties -Xmx2g net.sourceforge.cobertura.instrument.Main --commandsfile /tmp/cobertura.2442776268684354806.cmdline

rio      10541  3350  0 09:54 pts/1    00:00:00 grep 25455

rio      25455  9484 24 09:45 pts/9    00:02:09 /apps/rio/java/jdk1.6.0_16/bin/java -Xms2g -Xmx2g -XX:PermSize=1g -Dmaven.repo.local=/local/rio/cache4/maven/m2-repo -classpath /apps/rio/apache-maven-2.2.1/boot/classworlds-1.1.jar -Dclassworlds.conf=/apps/rio/apache-maven-2.2.1/bin/m2.conf -Dmaven.home=/apps/rio/apache-maven-2.2.1 org.codehaus.classworlds.Launcher "-e" "-Dmri.skip.test=false" "-Djava.awt.headless=true" "clean" "cobertura:cobertura"

 

It seems clear that the “net.sourceforge.cobertura.instrument.Main” jvm is running out of PermGen space. I was looking for some kind of hook to add a “-XX:PermSize” argument but after looking at the source code for org.codehaus.mojo.cobertura.tasks.AbstractTask.executeJava, it seems like there is no way to add the additional arg. Can some mechanism be created to do that or did I miss something?

 

This email is confidential and subject to important disclaimers and conditions including on offers for the purchase or sale of securities, accuracy and completeness of information, viruses, confidentiality, legal privilege, and legal entity disclaimers, available at http://www.jpmorgan.com/pages/disclosures/email.