問題描述
通過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
記之。