Sonar-OutOfMemoryError: Java heap space

je déploie un grand projet Java sur Sonar en utilisant" Findbugs " comme profil et en obtenant l'erreur ci-dessous:

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

Ce que j'ai essayé de résoudre ce problème:

  1. Remplacé %SONAR_RUNNER_OPTS% avec -Xms256m -Xmx1024m pour augmenter la taille du segment de mémoire dans sonar-runner fichier bat.
  2. mettre " sonar.findbugs.l'effort de" paramètre "Min" dans Sonar des paramètres globaux.

mais les deux méthodes ci-dessus n'ont pas fonctionné pour moi.

16
demandé sur lucrussell 2012-10-19 08:31:33

6 réponses

j'ai eu le même problème et j'ai trouvé une solution très différente, peut-être parce que j'ai du mal à avaler les réponses / commentaires précédents. Avec 10 millions de lignes de code (c'est plus de code que dans un avion de chasse F16), si vous avez 100 caractères par ligne (une taille folle), vous pouvez charger l'ensemble de la base de code dans 1 Go de mémoire. J'ai réglé 8 Go de mémoire et ça a échoué. Pourquoi?

réponse: Parce que le scanner sonar C++ de la communauté semble avoir un bug où il détecte N'importe quel fichier avec la lettre " c " dans son extension. Qui comprend .doc. ,docx, .shicp, etc. Par conséquent, la raison pour laquelle il est à court de mémoire est parce qu'il essaie de lire un fichier qu'il pense être 300 Mo de code pur mais vraiment il devrait être ignoré.

Solution: trouvez les extensions utilisées par tous les fichiers de votre projet (voir ici):

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

puis ajoutez ces autres extensions comme exclusions dans votre sonar.fichier de propriétés:

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

alors réglez vos limites de mémoire sur des quantités régulières.

%JAVA_EXEC% -Xmx1024m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m %SONAR_RUNNER_OPTS% ...
10
répondu Ryan Shillington 2017-05-23 12:01:59

cela a fonctionné pour moi:

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

je l'ai mis direct dans la sonar-runner(.chauve-souris) fichier

7
répondu seoservice.ch 2013-06-26 07:40:21

j'ai eu le même problème avec le sonar avec maven. Dans mon cas, il a aidé à appeler sonar séparément:

mvn clean install && mvn sonar:sonar

au lieu de

mvn clean install sonar:sonar

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

5
répondu Matt 2015-03-04 19:33:46

je sais que ce fil est un peu vieux mais cette information pourrait aider quelqu'un.

Pour moi le problème n'était pas comme suggéré par le haut-réponse avec le C++ plugin. Au lieu de cela, mon problème était le XML-Plugin (https://docs.sonarqube.org/display/PLUG/SonarXML) après, j'ai désactivé l'analyse a de nouveau fonctionné.

2
répondu SLuck 2017-03-09 14:48:49

ce que vous pouvez faire pour créer votre propre profil de qualité avec juste quelques règles Findbugs au début, et puis ajouter progressivement de plus en plus jusqu'à ce que vous atteignez son OutOfMemoryError. Il n'y a probablement qu'une seule règle qui fait échouer tout cela parce que votre code la viole - et si vous désactivez cette règle, elle fonctionnera certainement.

1
répondu Fabrice - SonarSource Team 2012-10-19 06:42:39

le problème est du côté de FindBugs. Je suppose que vous analysez un grand projet qui a probablement de nombreuses violations. Jetez un oeil à deux fils correspondante dans la liste de diffusion ayant le même problème. Il y a quelques idées que vous pouvez essayer pour vous-même.

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

0
répondu ppapapetrou 2012-10-19 06:44:07