Armadilloフォーラム

コンテナ作成時の「error loading cached network config: network "podman" not found in CNI cache」エラーについて

minomi-s

2022年7月13日 12時26分

お世話になっております。

製品マニュアルに従い、現在色々とArmadilloのセットアップやコンテナの起動などを試行しています。
有線LANのローカルネットワークに接続した状態のArmadilloについて、固定IPアドレスを変更して再起動(reboot)したところ、再起動後にイメージからコンテナを作成しようとしたところ掲題のエラーが表示されるようになってしまいました。
何か解決方法などご存じでしたらご教授お願い致します。
※他に必要な情報あればご連絡ください。

コンテナ作成に実行したコマンドと出力されたエラーの内容は以下の通りです

armadillo:/var/lib/containers/storage# podman run -it --name=test_20220713 --volume=/opt/firmware:/opt/firmware --volume=/var/app/volumes/
doorman:/usr/bin/doorman --volume=/var/app/volumes/contents:/mnt --publish=8080:80 --volume=/sys:/sys --volume=/dev:/dev --volume=/run/udev:
/run/udev --publish=8081:8081 --env=LD_LIBRARY_PATH=/opt/firmware/usr/lib/aarch64-linux-gnu --env=XDG_RUNTIME_DIR=/tmp --privileged localhos
t/at-debian-image:latest /bin/bash
ERRO[0000] error loading cached network config: network "podman" not found in CNI cache
WARN[0000] falling back to loading from existing plugins on disk
ERRO[0000] Error tearing down partially created network namespace for container 9dea335a0c3ed4765f64a512fa0e4e1e4d8a3a8d21f1049f8ec5939c888a4e59: error removing pod test_20220713_3_test_20220713_3 from CNI network "podman": running [/sbin/iptables -t nat -D POSTROUTING -s 10.88.0.7 -j CNI-dfece5788c300d45a9170baa -m comment --comment name: "podman" id: "9dea335a0c3ed4765f64a512fa0e4e1e4d8a3a8d21f1049f8ec5939c888a4e59" --wait]: exit status 2: iptables v1.8.7 (legacy): Couldn't load target `CNI-dfece5788c300d45a9170baa':No such file or directory
 
                                                                                                                                 Try `iptables -h' or 'iptables --help' for more information.
Error: error configuring network namespace for container 9dea335a0c3ed4765f64a512fa0e4e1e4d8a3a8d21f1049f8ec5939c888a4e59: error adding pod test_20220713_3_test_20220713_3 to CNI network "podman": netplugin failed: "panic: runtime error: invalid memory address or nil pointer dereference\n[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xff7d8]\n\ngoroutine 1 [running, locked to thread]:\ngithub.com/vishvananda/netlink.parseAddr({0x40000c20b4, 0x38, 0x38})\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/vishvananda/netlink/addr_linux.go:271 +0x118\ngithub.com/vishvananda/netlink.(*Handle).AddrList(0x2ddee0, {0x1ea8d0, 0x40001523c0}, 0x2)\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/vishvananda/netlink/addr_linux.go:196 +0x33c\ngithub.com/vishvananda/netlink.AddrList(...)\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/vishvananda/netlink/addr_linux.go:171\nmain.ensureAddr({0x1ea8d0, 0x40001523c0}, 0x2, 0x40000a4120, 0x0)\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/plugins/main/bridge/bridge.go:193 +0x50\nmain.cmdAdd(0x400014a770)\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/plugins/main/bridge/bridge.go:580 +0x11a0\ngithub.com/containernetworking/cni/pkg/skel.(*dispatcher).checkVersionAndCall(0x4000123eb8, 0x400014a770, {0x1ea880, 0x400011ade0}, 0x1bdf48)\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/containernetworking/cni/pkg/skel/skel.go:166 +0x22c\ngithub.com/containernetworking/cni/pkg/skel.(*dispatcher).pluginMain(0x4000123eb8, 0x1bdf48, 0x1bdf50, 0x1bdf58, {0x1ea880, 0x400011ade0}, {0x4000158048, 0x18})\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/containernetworking/cni/pkg/skel/skel.go:218 +0x25c\ngithub.com/containernetworking/cni/pkg/skel.PluginMainWithError(...)\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/containernetworking/cni/pkg/skel/skel.go:275\ngithub.com/containernetworking/cni/pkg/skel.PluginMain(0x1bdf48, 0x1bdf50, 0x1bdf58, {0x1ea880, 0x400011ade0}, {0x4000158048, 0x18})\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/containernetworking/cni/pkg/skel/skel.go:290 +0xc8\nmain.main()\n\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/plugins/main/bridge/bridge.go:675 +0x10c\n"
コメント

at_dominique.m…

2022年7月13日 12時53分

minomi-sさん

お世話になっています、
アットマークテクノのマルティネです。

"panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xff7d8]\ngoroutine 1 [running, locked to thread]:
github.com/vishvananda/netlink.parseAddr({0x40000c20b4, 0x38, 0x38})
\t/home/buildozer/aports/community/cni-plugins/src/plugins-1.0.1/vendor/github.com/vishvananda/netlink/addr_linux.go:271 

このバーグは4月末のアップデート(3.15.4-at.6)で修正したはずですが、Armadillo を更新していただけますか?

最新のアップデートはこちらです: https://armadillo.atmark-techno.com/news/20220628/update-aiotg4
以下のコマンドで latest のバージョンをアップデートできます:

swupdate -d '-u https://download.atmark-techno.com/armadillo-iot-g4/image/baseos-x2-latest.swu'

# BaseOS の更新の際に /etc/swupdate_preserve_files に乗っていないファイルが保存されてないので、ご注意ください。
# ファイルをなくしたら、アップデート後に「abos-ctrl mount-old」でアップデート前のパティションをマウントしてコピーできます。

よろしくお願いします。

マルティネさん、回答ありがとうございます。
※ちなみに、unameで現在のバージョンを確認したところ「5.10.109-1-at」でした

armadillo:/var/lib/containers/storage# uname -r
5.10.109-1-at

回答頂いた方法でアップデートを試してみます

at_dominique.m…

2022年7月13日 14時41分

> ※ちなみに、unameで現在のバージョンを確認したところ「5.10.109-1-at」でした

すみません、バージョンの確認する方法を書いてませんでした。 /etc/atmark-release に書いてあります。

最新のリリースでは、以下のとおりです:

armadillo:~# cat /etc/atmark-release 
3.16.0-at.1
armadillo:~# uname -r
5.10.126-0-at

5.10.109-1-at は 3.15.4-at.5 で、3.15.4-at.6 の修正直前のバージョンですので、更新すれば動くと思います。

(ちなみに、3.15.4-at.6 で不具合のある `cni-plugins` を修正しましたが、最新の 3.16.0-at.1 では cni-plugins から netavark という、podman の新しいネットワークマネジメントプラグインを使うようになったので、このバグは確実に再現できなくなります。)

よろしくお願いします。

回答頂いた方法でswupdateを実行したところ、以下のような表示となりました
ERRORの表示が出ている点は問題ないでしょうか?

armadillo:~# swupdate -d '-u https://download.atmark-techno.com/armadillo-iot-g4/image/baseos-x2-latest.swu'
Swupdate v2021.04.0
 
Licensed under GPLv2. See source distribution for detailed copyright notices.
 
[INFO ] : SWUPDATE started :  Software Update started !
[ERROR] : SWUPDATE failed [0] ERROR : swupdate triggering reboot!
Killed

おそらく再起動が実行されたようなので、USBコンソールから接続して確認したところ以下のような表示となっていること確認できました

armadillo:~# cat /etc/atmark-release 
3.16.0-at.1
armadillo:~# uname -r
5.10.126-0-at

すみません、補足です
swupdateはローカルネットワーク上の別端末からLAN経由でSSH接続したコンソール上で実行しています
reboot後、SSHでの接続ができなくなってしまったので(atmarkユーザでログインしようとするとPermissionDeniedになる)ATDEからUSBコンソールで接続して確認しています

at_dominique.m…

2022年7月13日 15時36分

> 回答頂いた方法でswupdateを実行したところ、以下のような表示となりました
> ERRORの表示が出ている点は問題ないでしょうか?

はい、分かりにくい実装ですみません。古い swupdate のバージョンでは SWU のスクリプトからのメッセージを表示するにはエラーしかなかったので、「再起動しますよ!」というお知らせだけです。
これも4月の 3.15.4-at.6 以降のバージョンで改善して、これからのアップデートで、緑のメッセージで以下のようになりました。

armadillo:~# swupdate <options>
SWUpdate v5f2d8be-dirty
 
Licensed under GPLv2. See source distribution for detailed copyright notices.
 
[INFO ] : SWUPDATE running :  [main] : Running on iot-g4-es1 Revision at1
[INFO ] : SWUPDATE started :  Software Update started !
[INFO ] : SWUPDATE running :  [read_lines_notify] : Other fs up to date, skipping copy
[INFO ] : SWUPDATE running :  [read_lines_notify] : Removing unused containers
[INFO ] : SWUPDATE running :  [read_lines_notify] : swupdate triggering reboot!
Killed

> おそらく再起動が実行されたようなので、USBコンソールから接続して確認したところ以下のような表示となっていること確認できました

> armadillo:~# cat /etc/atmark-release 
> 3.16.0-at.1
> armadillo:~# uname -r
> 5.10.126-0-at

これで問題ないですね。コンテナの動作に問題ないか確認していただけたら幸です。

> swupdateはローカルネットワーク上の別端末からLAN経由でSSH接続したコンソール上で実行しています
> reboot後、SSHでの接続ができなくなってしまったので(atmarkユーザでログインしようとするとPermissionDeniedになる)ATDEからUSBコンソールで接続して確認しています

PermissionDeniedということは、sshd が有効のままで起動していましたが、パスワードがリセットされたということですね?
パスワードを設定してから再起動していましたか?システムが overlay によってメモリ上にしか存在しないので、「passwd」コマンドでパスワード変更を行う場合に「persist_file /etc/shadow」を実行しないとなくなりますので、それでなくなったかもしれません。
後、このアップデートでatmark ユーザーにパスワードがない場合に、オープンなデバイスを残さないためにアカウントをロックしていましたが、パスワードなしで ssh 公開鍵で接続していた場合にロックされたことで接続できなくなりますね。申し訳ございません、そこまで考えてなかったです。
rootユーザーで「passwd atmark」で設定してから「persist_file /etc/shadow」で永続化したら、この問題はもう起きません。

お手数をお掛けしますが、他の理由を思いつかないので当てなかった場合にアカウントをどういう風に設定されていたかを教えていただければ助かります。

よろしくお願いします。

> はい、分かりにくい実装ですみません。古い swupdate のバージョンでは SWU のスクリプトからのメッセージを表示するにはエラーしかなかったので、「再起動しますよ!」というお知らせだけです。

回答ありがとうございます。
ERROR表示に関しては問題ないとのこと、承知致しました。

SSHの件も、先ほど自己解決いたしました。
マルティネさんのおっしゃる通り、アップデートによってatmarkユーザのロックがされるという事を最新のマニュアルv1.8.0で記載されていましたね(こちらの確認不足で申し訳ありません)
passwd atmarkでパスワード変更後、ちゃんとSSH接続できるようになりました。

コンテナの起動も今のところ問題なくできています、迅速に回答頂きありがとうございました。