Issue
I am trying to upgrade sonarqube from 7.4-community
docker version to 7.9-community
version. But I am getting this error when I did the DB upgrade via http://sonar_IP:9000/setup
. I have enough memory on the server as well.
Do you have an idea about this error?
I have setup docker-compose parameter to change the Java virtual memory but seems it didn't work.
docker-compose.yml parameter:
- SONAR_RUNNER_OPTS="-Xmx9216m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m"
Docker log when sonarqube getting start:
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$$Lambda$1225/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$0(MassUpdate.java:92)
sonarqube_1 | at org.sonar.server.platform.db.migration.step.MassUpdate$$Lambda$1226/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)
Solution
Yes, Correct Isaac. Thanks for the reply. Already
I managed to resolve that changing the JVM parameters in sonar.properties
file related to Elasticsearch, compute Engine, and Web server. Then the upgrade was successful.
I managed to upgrade sonarqube from 6.5 to 8.3.1 version.
Web Server:
sonar.web.javaOpts=-Xmx4096m -Xms4096m -XX:+HeapDumpOnOutOfMemoryError
Compute Engine:
sonar.ce.javaOpts=-Xmx4096m -Xms4096m -XX:+HeapDumpOnOutOfMemoryError
Elasticsearch:
sonar.search.javaOpts=-Xms2048m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError
Answered By - Sanka Sathyaji Answer Checked By - Marilyn (WPSolving Volunteer)