#author("2023-04-25T07:22:37+00:00","default:wikiadmin","wikiadmin")
#author("2023-05-11T00:37:04+00:00","default:wikiadmin","wikiadmin")
-バージョンアップ検証

*公式ドキュメント [#zf2f1f67]

https://docs.sonarqube.org/latest/setup/upgrading/

-アップグレード時にテーブル使用領域が一時的に増えるので50%の空き容量を確保せよ
-ロールバックはDBとSonarをバージョンアップ前に戻して再起動する

*Index再生成 [#jb0f9db8]


 1. SonarQubeを停止します。
 2. Elasticsearchのデータディレクトリをバックアップします。
 3. Elasticsearchのデータディレクトリを削除します。デフォルトの場合、Elasticsearchのデータディレクトリは `${SONARQUBE_HOME}/data/es`.
 4. SonarQubeを再起動します。SonarQubeが起動すると、Elasticsearchの新しいインデックスが自動的に作成されます。

注意: インデックスを再構築すると、過去のSonarQubeの解析データが失われるため、注意して実行してください。また、再構築中はSonarQubeが使用できなくなる可能性があるため、作業中にはユーザーに影響がないようにする必要があります。

*8.9 to 9.9 [#e1d0748e]

-環境変数が違う(SONARQUBE_XXXは使用不可になった)
-JVMの引数も変更(sonar.web.javaAdditionalOpts=SONAR_WEB_JAVAADDITIONALOPTS)
-DBのサポートバージョン

**情報収集 [#sb0ee8c0]

https://community.sonarsource.com/t/insufficient-memory-and-cannot-create-worker-gc-thread/88600

https://github.com/GoogleCloudPlatform/pgadapter/issues/405

**Ubntu&CentOS7&AmazonLinux2で起動しない [#i8adfbd1]

|Ubuntu 16.04|起動せず|
|Ubuntu 18.04(元16.04)|起動せず|
|Ubuntu 20.04(元16.04)|起動せず|
|Ubuntu 20.04(元16.04) パッケージUpdate|Dockerサービス起動失敗で詰みと思いきや再起動後にトライで成功。OSアップデートで3回再起動|
|Ubuntu 20.04|起動する。docker-ceインストール|

Ubuntu 20.04/AmazonLinux 2023では再現せず

 sonarqube   | [0.086s][warning][os,thread] Failed to start thread "GC Thread#0" - pthread_create failed (EPERM) for attributes: stacksize: 1024k, guardsize: 4k, detached.
 sonarqube   | #
 sonarqube   | # There is insufficient memory for the Java Runtime Environment to continue.
 sonarqube   | # Cannot create worker GC thread. Out of system resources.
 sonarqube   | # An error report file with more information is saved as:
 sonarqube   | # /tmp/hs_err_pid1.log
 sonarqube exited with code 1


-AmazonLinux2でOKなバージョン

[ec2-user@ip-172-31-2-208 ~]$ uname -a
Linux ip-172-31-2-208.ap-northeast-1.compute.internal 5.10.173-154.642.amzn2.x86_64 #1 SMP Wed Mar 15 00:26:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

-NGなバージョン

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Cannot create worker GC thread. Out of system resources.
# Possible reasons:
#   The system is out of physical RAM or swap space
#   The process is running with CompressedOops enabled, and the Java Heap may be
 blocking the growth of the native heap
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
#   JVM is running with Unscaled Compressed Oops mode in which the Java heap is
#     placed in the first 4GB address space. The Java Heap base address is the
#     maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddres
s
#     to set the Java Heap base and to place the Java Heap above 4GB virtual add
ress.
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (workerManager.hpp:87), pid=1, tid=1
#
# JRE version:  (17.0.6+10) (build )
# Java VM: OpenJDK 64-Bit Server VM (17.0.6+10, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g
1 gc, linux-amd64)

**JVMオプショントライしまくり [#l7184c90]

 /opt/java/openjdk/bin/java -XX:CICompilerCount=2 -XX:-UseCompressedOops -Xss136k  -Xmx256m -Xms256m -jar lib/sonarqube.jar


-

|圧縮Ops無効|-XX:-UseCompressedOops|状況かわらず|
|スタックサイズ縮小|-Xss136k|状況かわらず|
|コードキャッシュ増加|-XX:ReservedCodeCacheSize=128|状況かわらず|

-スレッド数減らす系

https://stackoverflow.com/questions/25682398/how-to-reduce-the-number-of-threads-used-by-the-jvm

|-XX:+UseSerialGC|起動せず|
|-XX:CICompilerCount=2|状況かわらず|
|-XX:+ReduceSignalUsage|状況かわらず|
|-XX:+DisableAttachMechanism|状況かわらず|



*7.9 to 8.9 [#d92a4ed0]

**移行後プロジェクトが消える [#wf27529e]

仕事のやつで遭遇した困った問題。
一覧には出てこない。個別に指定すると出てくる。

indexの作り直しでうまく行くのかは試してないけど試して見る価値あり。

**7.9のPostgres9.6で起動 [#h030f741]

ServerID 243B8A4D-AX0SEMDXHfZSM2p8OkQR

SAML 関連に値を入れる

**downして、volumeのバックアップ取得 [#cf49bc60]

 docker volume create --name sonarqube_sonarqube_data79
 docker volume create --name sonarqube_sonarqube_extensions79
 docker volume create --name sonarqube_postgres_data79
 docker volume create --name sonarqube_postgres79

 docker container run --rm -it -v sonarqube_sonarqube_extensions:/from -v sonarqube_sonarqube_extensions79:/to alpine ash -c "cd /from ; cp -av . /to"
 docker container run --rm -it -v sonarqube_sonarqube_data:/from -v sonarqube_sonarqube_data79:/to alpine ash -c "cd /from ; cp -av . /to"
 docker container run --rm -it -v sonarqube_postgresql_data:/from -v sonarqube_postgres_data79:/to alpine ash -c "cd /from ; cp -av . /to"
 docker container run --rm -it -v sonarqube_postgresql:/from -v sonarqube_postgres79:/to alpine ash -c "cd /from ; cp -av . /to"

この時点で付け替えしてみて起動することを確認する

ServerID 243B8A4D-AX0RveuJOTnufm9wIf7w

**超重要!!プラグインのあるVolumeを消す! [#cc65a2a5]

間違えないように注意!

 sonarqube7.9のdockerをrm
 extentionsのvolumeをrm
 dataのvolumeをrm

**8.9にして起動する [#i82bd9fa]

ServerID 243B8A4D-AX0SEMDXHfZSM2p8OkQR

-成功!

-一回接続先DB間違えたため、SAMLなどは引き継がれたがProjectは消えるという状況でなんとも難しい。

**8.9から戻し。 [#h5574271]

sonarqube_dataが共有だったせいかエラーで起動せず。
docker-compose downしなかったので、DBが戻らず起動せず。

downしてps -aででてこない状態を確認して戻せば切り戻し成功!


*DBだけ戻す方法(成功バージョン) [#p5800295]

+docker-compose stop sonarqube
+DBをdump
+DBをクリアする
+dumpを投入
+docker-compose up sonarqube

*DBの差し替え [#g9579429]

+postgres9.6 & 13を準備
+13にimport
+docker-compose stop sonarqube
+13に切り替え。接続文字列変わる
+docker-compose up sonarqube
+プロジェクト引き継ぎ成功
+Server ID 	243B8A4D-AX0SEMDXHfZSM2p8OkQR

**9.6でexport [#ub3e21f6]

-docker内部に入る

 docker-compose exec db /bin/bash

-export実行して抜ける

 pg_dumpall -U sonar > /var/tmp/backup.sql
 exit

-docker cpにてファイルコピー

 sudo docker cp `sudo docker-compose ps -q db`:/var/tmp/backup.sql ./


 SonarQube ID information
 Server ID: 243B8A4D-AX3X9bKMqyoRPKdD1a_m
 Version: 7.9.6.41879
 Date: 2022-01-06

**13.6にimport [#d4baabb1]


-docker cpにてファイルコピー

 sudo docker cp backup.sql `sudo docker-compose ps -q db`:/var/tmp/backup.sql 

-import

 psql -U sonar < /var/tmp/backup.sql
 exit

-docker-compose downして接続先変更してupしたらServerID変わってしまった。

 SonarQube ID information
 Server ID: BCE753A0-AX3X9bKMqyoRPKdD1a_m
 Version: 7.9.6.41879
 Date: 2022-01-06

-JDBCの接続文字列db2をdbに戻したら戻った。

 SonarQube ID information
 Server ID: 243B8A4D-AX3X9bKMqyoRPKdD1a_m
 Version: 7.9.6.41879
 Date: 2022-01-06

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS