如何解决 Sonarqube java.lang.OutOfMemoryError: Java heap space
Posted
技术标签:
【中文标题】如何解决 Sonarqube java.lang.OutOfMemoryError: Java heap space【英文标题】:How to solve Sonarqube java.lang.OutOfMemoryError: Java heap space 【发布时间】:2021-12-25 11:00:53 【问题描述】:我正在使用 Sonarqube 社区版。我收到以下错误,
Exception in thread "LOG_FLUSHER" Exception in thread "CHECKPOINT_WRITER" java.lang.OutOfMemoryError: Java heap space
at java.util.ArrayList.iterator(ArrayList.java:840)
at java.util.Collections$SynchronizedCollection.iterator(Collections.java:2031)
at com.persistit.Persistit.pollAlertMonitors(Persistit.java:2285)
at com.persistit.Persistit$LogFlusher.run(Persistit.java:192)
java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap$Values.iterator(HashMap.java:968)
at com.persistit.Persistit.earliestDirtyTimestamp(Persistit.java:1439)
at com.persistit.CheckpointManager.pollFlushCheckpoint(CheckpointManager.java:271)
at com.persistit.CheckpointManager.runTask(CheckpointManager.java:301)
at com.persistit.IOTaskRunnable.run(IOTaskRunnable.java:144)
at java.lang.Thread.run(Thread.java:748)
WARNING: WARN: [JOURNAL_FLUSHER] WARNING Journal flush operation took 7,078ms last 8 cycles average is 884ms
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 1:17.852s
ERROR: Error during SonarQube Scanner execution
ERROR: Java heap space
ERROR:
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "CLEANUP_MANAGER"
INFO: Final Memory: 40M/989M
INFO: ------------------------------------------------------------------------
The SonarQube Scanner did not complete successfully
我已经更改了 sonar.properties 中的大小,但我仍然面临同样的问题。如何解决这个问题。
sonar.web.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
sonar.ce.javaOpts =-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
sonar.search.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
【问题讨论】:
【参考方案1】:Project 中的大文件会导致此问题,对我而言,一个 50MB 的 XML 文件会出现此错误,并且此文件对分析过程并不重要。我在配置文件(SonarQube.Analysis.xml)中排除了这个文件,问题就解决了
【讨论】:
【参考方案2】:您更改的是为 SonarQube 本身分配内存的设置。
您需要更改的是为分析进程分配内存的设置。您还没有说您使用的是哪种分析仪,因此细节会有所不同,但是
用于 SonarQube 扫描仪export SONAR_SCANNER_OPTS="-Xmx512m"
用于 Maven 的 SonarQube 扫描仪export MAVEN_OPTS="-Xmx512m"
【讨论】:
我正在使用 SonarQube 扫描仪,我是 Windows 用户。如何添加? docs.sonarqube.org/display/SCAN/…以上是关于如何解决 Sonarqube java.lang.OutOfMemoryError: Java heap space的主要内容,如果未能解决你的问题,请参考以下文章
Sonarqube - java.lang.OutOfMemoryError:超出 GC 开销限制
Jenkins - Maven 项目 - SonarQube 分析不稳定 - 错误:无法为 - java.lang.IllegalArgumentException 创建符号表:null
Sonarqube 问题:原因:java.lang.IllegalStateException:无法解析引导索引中的条目 - 也在删除插件 auth aad
关于Jenkins构建Git项目出现java.lang.StackOverflowError解决记录