tutorial sonar scanner instalar coverage sonarqube sonar-runner

sonarqube - scanner - Sonar-OutOfMemoryError: espacio de almacenamiento dinámico de Java



sonarqube java (6)

El problema está en el lado de FindBugs. Supongo que estás analizando un gran proyecto que probablemente tenga muchas violaciones. Eche un vistazo a dos hilos en la lista de correo de Sonar que tienen el mismo problema. Hay algunas ideas que puedes probar por ti mismo.

http://sonar.15.n6.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-td4898141.html

http://sonar.15.n6.nabble.com/java-lang-OutOfMemoryError-Java-heap-space-td5001587.html

Estoy implementando un gran proyecto Java en Sonar usando "Findbugs" como perfil y obtengo el siguiente error:

Caused by: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space

Lo que he tratado de resolver esto:

  1. Se reemplazó% SONAR_RUNNER_OPTS% con -Xms256m -Xmx1024m para aumentar el tamaño del montón en el archivo bat de sonar-runner.
  2. Coloque el parámetro "sonar.findbugs.effort" como "Min" en los parámetros globales de Sonar.

Pero los dos métodos anteriores no funcionaron para mí.


Lo que puede hacer para crear su propio perfil de calidad con solo algunas reglas de Findbugs al principio, y luego agregar progresivamente más y más hasta que llegue a su OutOfMemoryError. Probablemente solo haya una única regla que haga que todo esto falle porque su código lo viola, y si la desactiva, ciertamente funcionará.


Sé que este hilo es un poco viejo, pero esta información podría ayudar a alguien.

Para mí, el problema no fue el sugerido por la respuesta principal con el complemento C ++. En cambio, mi problema fue el complemento Xml ( https://docs.sonarqube.org/display/PLUG/SonarXML ) después de que lo desactivé, el análisis funcionó nuevamente.


Tuve el mismo problema al ejecutar sonar con maven. En mi caso me ayudó llamar al sonar por separado:

mvn clean install && mvn sonar:sonar

en lugar de

mvn clean install sonar:sonar

http://docs.sonarqube.org/display/SONAR/Analyzing+with+Maven

Observación: debido a que mi solución está conectada a maven, esta no es la respuesta directa a la pregunta. Pero podría ayudar a otros usuarios que tropiecen con él.


Tuve el mismo problema y encontré una solución muy diferente, tal vez porque me cuesta mucho tragar las respuestas / comentarios anteriores. Con 10 millones de líneas de código (eso es más código que en un avión de combate F16), si tiene 100 caracteres por línea (un tamaño loco), podría cargar toda la base de código en 1 GB de memoria. Lo puse en 8GB de memoria y todavía fallaba. ¿Por qué?

Respuesta: Debido a que el escáner de la comunidad Sonar C ++ parece tener un error donde recoge CUALQUIER archivo con la letra ''c'' en su extensión. Eso incluye .doc, .docx, .ipch, etc. Por lo tanto, la razón por la que se está quedando sin memoria es porque está intentando leer un archivo que cree que es de 300 mb de código puro, pero en realidad debería ignorarse.

Solución: encuentre las extensiones utilizadas por todos los archivos en su proyecto ( vea más aquí ):

dir /s /b | perl -ne ''print $1 if m//.([^^.////]+)$/'' | sort -u | grep c

Luego agregue estas otras extensiones como exclusiones en su archivo sonar.properties:

sonar.exclusions=**/*.doc,**/*.docx,**/*.ipch

A continuación, establezca sus límites de memoria a las cantidades regulares

%JAVA_EXEC% -Xmx1024m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m %SONAR_RUNNER_OPTS% ...


esto me ha funcionado:

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

Lo puse directamente en el archivo sonar-runner (.bat)