Sonarqube 从 7.4 社区升级到 7.9 JVM 错误

Sonarqube upgrade from 7.4-community to 7.9 JVM ERROR

我正在尝试将 sonarqube 从 7.4-community docker 版本升级到 7.9-community 版本。但是当我通过 http://sonar_IP:9000/setup 进行数据库升级时出现此错误。我在服务器上也有足够的内存。

你知道这个错误吗?

我已经设置了 docker-compose 参数来更改 Java 虚拟内存,但似乎没有用。

docker-compose.yml参数:

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

Docker sonarqube 启动时记录:

sonarqube_1  | 2020.06.15 07:19:25 INFO  es[][o.e.n.Node] JVM arguments [-XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/opt/sonarqube/temp, -XX:ErrorFile=../logs/es_hs_err_pid%p.log, -Des.enforce.bootstrap.checks=true, -Xms512m, -Xmx512m, -XX:+HeapDumpOnOutOfMemoryError, -Des.path.home=/opt/sonarqube/elasticsearch, -Des.path.conf=/opt/sonarqube/temp/conf/es, -Des.distribution.flavor=default, -Des.distribution.type=tar]


sonarqube_1  | 2020.06.15 07:01:04 INFO  web[][DbMigrations] Executing DB migrations...
sonarqube_1  | 2020.06.15 07:01:04 INFO  web[][DbMigrations] #2800 'Truncate environment variables and system properties from existing scanner reports'...
sonarqube_1  | java.lang.OutOfMemoryError: Java heap space
sonarqube_1  | Dumping heap to java_pid122.hprof ...
sonarqube_1  | Heap dump file created [483151698 bytes in 0.928 secs]
sonarqube_1  | 2020.06.15 07:01:09 ERROR web[][DbMigrations] #2800 'Truncate environment variables and system properties from existing scanner reports': failure | time=4629ms
sonarqube_1  | 2020.06.15 07:01:09 ERROR web[][DbMigrations] Executed DB migrations: failure | time=4638ms
sonarqube_1  | 2020.06.15 07:01:09 ERROR web[][o.s.s.p.d.m.DatabaseMigrationImpl] Container restart failed | time=4831ms
sonarqube_1  | 2020.06.15 07:01:09 ERROR web[][o.s.s.p.d.m.DatabaseMigrationImpl] Container restart failed
sonarqube_1  | java.lang.OutOfMemoryError: Java heap space
sonarqube_1  |  at org.postgresql.jdbc.PgPreparedStatement.setBytes(PgPreparedStatement.java:339)
sonarqube_1  |  at org.apache.commons.dbcp2.DelegatingPreparedStatement.setBytes(DelegatingPreparedStatement.java:306)
sonarqube_1  |  at org.apache.commons.dbcp2.DelegatingPreparedStatement.setBytes(DelegatingPreparedStatement.java:306)
sonarqube_1  |  at org.sonar.server.platform.db.migration.step.BaseSqlStatement.setBytes(BaseSqlStatement.java:93)
sonarqube_1  |  at org.sonar.server.platform.db.migration.step.UpsertImpl.setBytes(UpsertImpl.java:30)
sonarqube_1  |  at org.sonar.server.platform.db.migration.version.v79.TruncateEnvAndSystemVarsFromScannerContext.truncateScannerContext(TruncateEnvAndSystemVarsFromScannerContext.java:55)
sonarqube_1  |  at org.sonar.server.platform.db.migration.version.v79.TruncateEnvAndSystemVarsFromScannerContext$$Lambda25/0x0000000100790040.handle(Unknown Source)
sonarqube_1  |  at org.sonar.server.platform.db.migration.step.MassUpdate.callSingleHandler(MassUpdate.java:118)
sonarqube_1  |  at org.sonar.server.platform.db.migration.step.MassUpdate.lambda$execute[=11=](MassUpdate.java:92)
sonarqube_1  |  at org.sonar.server.platform.db.migration.step.MassUpdate$$Lambda26/0x0000000100790440.handle(Unknown Source)
sonarqube_1  |  at org.sonar.server.platform.db.migration.step.SelectImpl.scroll(SelectImpl.java:79)
sonarqube_1  |  at org.sonar.server.platform.db.migration.step.MassUpdate.execute(MassUpdate.java:92)

请注意,在日志的第一行,sonarqube 以“-Xms512m、-Xmx512m”开头,您的 SONAR_RUNNER_OPTS 变量无法正常工作。

是的,正确的艾萨克。谢谢回复。已经

我设法解决了更改 sonar.properties 文件中与 Elasticsearch、计算引擎和 Web 服务器相关的 JVM 参数的问题。然后升级成功。

我成功地将 sonarqube 从 6.5 升级到 8.3.1 版本。

网络服务器:

 sonar.web.javaOpts=-Xmx4096m -Xms4096m -XX:+HeapDumpOnOutOfMemoryError

计算引擎:

sonar.ce.javaOpts=-Xmx4096m -Xms4096m -XX:+HeapDumpOnOutOfMemoryError

弹性搜索:

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