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:
- Remplacé %SONAR_RUNNER_OPTS% avec -Xms256m -Xmx1024m pour augmenter la taille du segment de mémoire dans sonar-runner fichier bat.
- 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.
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% ...
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
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
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é.
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.
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