1.1.11の symbol-bootstrapで nodeが動かない時の対処方法

symbol-bootstrapが ver.up(1.1.11)しました
update方法は以前と違うので こちらの記事を参照して下さい

https://qiita.com/dusanjp/items/eb4b47397c5509677dde

https://qiita.com/ishidad2/items/a8419d63f8c04158e095

今回、bugの修正だけじゃなくて、mongo周りも updateされまして
**nodeの updateをしたら　nodeが起動しなくなった！**
って方も居ると思うので（実際僕の管理している nodeでも 2基発生しまして）
これの対処方法を提示します

これは　cubkab氏により

https://twitter.com/CubproJa10

https://tanuson.slack.com/archives/C01PV32NNQG/p1712456707277599

tanusonSlack上に提示された方法を
僕なりに ｱﾚﾝｼﾞしたものです

# nodeが起動しない！止まらない！

nodeの ｱﾌﾟﾃﾞ後に動かしちゃって
起動しないので　停止させようとしても
`symbol-bootstrap stop`で中々止まらない！と思います
このまま待っていれば止まるらしいんですが
**僕はせっかちなので**　こうします

```
docker ps
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/853c483a-e88a-e1d2-9a30-a6d5b822435c.png)
↑は まともに nodeが動作している時のものですが
nodeが停止しない時は　ここに何か止まって無い ｺﾝﾃﾅが表示されますので
強制的に終了させちゃいましょう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/07aafc4e-7e8e-74b0-5361-8e68a3272514.png)
おそらく db辺りが　まだあると思うので　これ　止めちゃいます

この場合は ｺﾝﾃﾅ "db"を止めたいので
CONTAINER IDの　dbの欄を見ると　c7804c1dfa14となってるので
```
docker kill c7804c1dfa14
```
ってやると　dbの ｺﾝﾃﾅは停止します
CONTAINER IDは　nodeでそれぞれなので　それぞれ`docker ps`の結果から ｺﾋﾟﾍﾟして下さい　
他に あったら　それも上記のやり方で　止めちゃいます
※ symbolNode以外で何か ｺﾝﾃﾅを動かしている場合は　それは killしない様に

# 動かなくなった symbolNodeを復旧させる

では　直して行きましょう


**target/docker/docker-compose.ymlの 8行目 "mongo:6.0.14"を "mongo:5.0.15"へ変更する**
今度の symbol-bootstrapの ver.upで 上っちゃった mongoの ver.を　前の ver.に一旦戻します
```
sed -i -e s/"mongo:6.0.14"/"mongo:5.0.15"/ target/docker/docker-compose.yml
```

**target/nodes/node/data内の lockﾌｧｲﾙの削除をする**
いっぺん無理やり停止させてる事もあるから *lockﾌｧｲﾙを削除しときましょう
```
rm -f target/nodes/node/data/*lock
```
**nodeを仮起動させる**
db周りをこれからいじるんですが　この作業をするには　nodeを動かしながらやるんですね
```
symbol-bootstrap run -d
```
`symbol-bootstrap healthCheck`等で　nodeが起動している事を確認してから
**target/dockerﾃﾞｨﾚｸﾄﾘに移動する**

```
cd target/docker
```
**dbをいじりに行きますよ**
```
docker-compose exec db bash
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/8a6f1f99-0459-b284-ce5a-ec0990459ad9.png)


↑の様な表示が出ます

```
mongo --host db
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/c571c96d-77f8-224d-85f4-d7f7a227375d.png)
なんかもう　ずらっと色々表示されてから
　">"　の入力待ちに変わります
```
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/ed1fd840-da07-1f6b-19c0-ee3de2d34f0c.png)
↑`{ "ok" : 1 }`と表示されます
ここが今回の作業の ｷﾓなんですね

**脱出しましょう**
```
exit
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/0f99753d-2669-4824-ccde-cb8679e9da87.png)

もう一度　exit
```
exit
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/582454/4b8a123e-a7d4-85b4-c1e6-4e9c19559cb4.png)

**帰って来ました**
**では　作業ﾃﾞｨﾚｸﾄﾘに戻りましょう**
```
cd -
```
作業ﾃﾞｨﾚｸﾄﾘに戻ったら
**仮起動させていた nodeを停止する**
```
symbol-bootstrap stop
```
**mongoの ver.を　6.0.14に戻す**
ほんとの 1.1.11での mongoの ver.6.0.14にします　作業の最初に書き換えていた docker-compose.ymlの
mongoの ver.の記述を元に戻します
```
sed -i -e s/"mongo:5.0.15"/"mongo:6.0.14"/ target/docker/docker-compose.yml
```
**nodeを本起動する**
起動させましょう
```
symbol-bootstrap run -d
```
`symbol-bootstrap healthCheck`等でnodeが正常に動作していれば成功です