2012-04-11 32 views
5

soy nuevo en sonar. Estoy ejecutando sonar de Jenkins con sonar pulgin.sonar findbugs montón tamaño

Cuando estoy corriendo desde Jenkins Estoy saliendo de excepción de memoria en findbugs

a continuación es el error:

Out of memory 
Total memory: 1037M 
free memory: 30M 
Analyzed: D:\Victor\autocreated\webapp\WEB-INF\classes 
    Aux: C:\DOCUME~1\NADBHA~1\LOCALS~1\Temp\findbugs4165854405681394173.jar 
    Aux: C:\DOCUME~1\NADBHA~1\LOCALS~1\Temp\findbugs4688505485649811865.jar 
Total time: 2:04:49.155s 
Final Memory: 358M/989M 
Exception in thread "main" org.sonar.batch.bootstrapper.BootstrapException: org.sonar.api.utils.SonarException: Can not execute Findbugs 
    at org.sonar.runner.Runner.delegateExecution(Runner.java:189) 
    at org.sonar.runner.Runner.execute(Runner.java:78) 
    at org.sonar.runner.Main.main(Main.java:61) 
Caused by: org.sonar.api.utils.SonarException: Can not execute Findbugs 
    at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:120) 
    at org.sonar.plugins.findbugs.FindbugsSensor.analyse(FindbugsSensor.java:58) 
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:64) 
    at org.sonar.batch.phases.Phases.execute(Phases.java:93) 
    at org.sonar.batch.bootstrap.ProjectModule.doStart(ProjectModule.java:143) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.bootstrap.BatchModule.analyze(BatchModule.java:111) 
    at org.sonar.batch.bootstrap.BatchModule.doStart(BatchModule.java:101) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:102) 
    at org.sonar.batch.bootstrap.Module.start(Module.java:83) 
    at org.sonar.batch.Batch.execute(Batch.java:100) 
    at org.sonar.runner.Launcher.executeBatch(Launcher.java:65) 
    at org.sonar.runner.Launcher.execute(Launcher.java:58) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.sonar.runner.Runner.delegateExecution(Runner.java:186) 
    ... 2 more 
Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space 
    at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.sonar.plugins.findbugs.FindbugsExecutor.execute(FindbugsExecutor.java:112) 
    ... 20 more 
Caused by: java.lang.OutOfMemoryError: Java heap space 

mi versión sonar es 2,13

cuando yo estoy aumentando la JVM opciones en Jenkins sonar plugin a 1280 se muestra a continuación error:

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit`enter code here` 
+0

¿Cuánta memoria tiene su máquina? 1280 parece ser más que el 1037M – oers

+0

disponible mi sistema ram es de 3 gb. – vinod

+0

¿Puedes publicar las opciones de JVM que establezcas? –

Respuesta

5

Sí, el ejecutor de sonar findbugs puede usar mucha RAM si la base de código analizada es grande.

Deberá aumentar no solo el tamaño de almacenamiento dinámico disponible para la JVM, sino también "MaxPermSize" y "ReservedCodeCacheSize" (al menos para la máquina virtual Java Hotspot). Las opciones de JVM se deben establecer en la JVM que está ejecutando el ejecutor sonar FindBugs. Probablemente no sea la VM de Jenkins, sino la que Jenkins comienza para el trabajo.

He aquí un ejemplo para un sistema de 64 bits:

-Xmx3062m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m 

En un sistema de 32 bits, que estoy asumiendo que usted está utilizando, va a ir para los valores más bajos, tales como:

-Xmx1536m -XX:MaxPermSize=384m -XX:ReservedCodeCacheSize=128m 

también , si Jenkins no acepta las opciones de JVM, puede intentar ejecutar el sonar usando la tarea de sonar de Jenkins. (Eso es lo que estoy haciendo, y puedo configurar tanta memoria como desee).

+0

intenté todas estas configuraciones a través de MAVEN_OPTS de Jenkins, pero desafortunadamente no tuve éxito :( – gvasquez