天天看點

SonarQube報java.lang.OutOfMemoryError問題描述解決方法

問題描述

通過jenkins Sonar插件執行go程式靜态掃描,掃描成功後,上傳報告到SonarQube,報如下錯誤:

“java.lang.IllegalArgumentException: Self-suppression not permitted

Caused by: java.lang.OutOfMemoryError: Java heap space”

或者

“java.lang.OutOfMemoryError: Java heap space”

或者

java.lang.OutOfMemoryError: GC overhead limit exceeded

解決方法

檢視網上解決辦法,修改SonarQube的conf目錄下配置檔案:conf/sonar.properties

sonar.web.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError

sonar.ce.javaOpts =-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError

sonar.search.javaOpts=-Xmx4G -Xms2048m -XX:+HeapDumpOnOutOfMemoryError

但是還是時不時報錯,仔細檢視日志,還需要修改另一個配置檔案:

elasticsearch/config/jvm.options

-Xms4g

-Xmx4g

兩者需要比對,才能根本上解決問題。

如果是執行sonar-scanner的時候報上述錯誤,需要在該指令運作伺服器上設定參數SONAR_SCANNER_OPTS,比如;

-Xmx4096m -XX:MaxPermSize=512m

記之。