Armadilloフォーラム

Armadillo起動後、しばらくするとコンテナが停止

urasue

2023年10月17日 19時49分

お世話になっております。
浦末です。

Armadilloを起動後、コンテナが自動的に起動するようにしていますが、起動して1分程経過するとコンテナが停止してしまいます。
停止したタイミングで、/var/log/messageにswupdateが失敗したようなログがあるので、これが影響しているかと思うのですが、どのように対処すればよいでしょうか。

Oct 17 19:21:50 armadillo user.info swupdate: RUN [install_single_image] : Installing post_script
Oct 17 19:21:50 armadillo user.warn swupdate: RUN [read_lines_notify] : ----------------------------------------------
Oct 17 19:21:50 armadillo user.info swupdate: RUN [read_lines_notify] : Removing unused containers
Oct 17 19:21:50 armadillo user.warn swupdate: RUN [read_lines_notify] : WARNING: containers running on development storage, image removal only removes untagged images
Oct 17 19:21:50 armadillo user.warn swupdate: RUN [read_lines_notify] : ----------------------------------------------
Oct 17 19:21:55 armadillo daemon.info chronyd[1610]: Selected source 133.243.238.163 (pool.ntp.org)
Oct 17 19:22:00 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Oct 17 19:22:00 armadillo user.err swupdate: FAILURE ERROR : /!\ Installed u-boot does not appear to be for aarch64, aborting!
Oct 17 19:22:00 armadillo user.err swupdate: FAILURE ERROR : /!\ In case of false positive, set MKSWU_NO_ARCH_CHECK=1
Oct 17 19:22:00 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Oct 17 19:22:00 armadillo user.err swupdate: FAILURE ERROR : Command failed: sh -c 'sh $1' -- /var/tmp/swupdate-url.yBmuoR//zst.scripts_post.sh
Oct 17 19:22:00 armadillo user.err swupdate: FAILURE ERROR : Error streaming zst.scripts_post.sh
Oct 17 19:22:00 armadillo user.err swupdate: FATAL_FAILURE Image invalid or corrupted. Not installing ...
Oct 17 19:22:00 armadillo user.info swupdate: IDLE Waiting for requests...
Oct 17 19:22:00 armadillo user.notice swupdate-url: auto-update warning: Could not write next update time to /var/log/swupdate/swupdate-url.state
Oct 17 19:22:00 armadillo user.notice swupdate-url: Next run on Tue Oct 24 02:21:39 JST 2023, sleeping 543579s
コメント

at_dominique.m…

2023年10月18日 8時01分

浦末さん

お世話になっています、
マルティネです。

> Armadilloを起動後、コンテナが自動的に起動するようにしていますが、起動して1分程経過するとコンテナが停止してしまいます。
> 停止したタイミングで、/var/log/messageにswupdateが失敗したようなログがあるので、これが影響しているかと思うのですが、どのように対処すればよいでしょうか。

このログではいくつかの問題がありますので、順番に説明と対応案をさせていただきます。

> WARNING: containers running on development storage, image removal only removes untagged images

abos-ctrl podman-storage --disk を使っているようですので、そのログの前に別の「WARNING: Persistent storage is used for podman, stopping all containers before updating」も表示されたと思います。
ディスクモードでは、安全にバックグラウンドで更新することはできませんのでコンテナを停止してからアップデートをインストールしています。
他にディスクモードの安全性が低いので、運用と運用のテストを行っている時は必ず「abos-ctrl podman-storage --tmpfs」を使ってください、その場合はコンテナがここで停止されません。

> ERROR : /!\ Installed u-boot does not appear to be for aarch64, aborting!
>  ERROR : /!\ In case of false positive, set MKSWU_NO_ARCH_CHECK=1

これはそのアップデートの失敗理由になりますが、そのアップデートでブートローダーを更新しようとして、そのブートローダーを確認できなかったので、そこで再起動できなくなる恐れがあるのであえて失敗させます。
そのアップデートについてもう少し教えていただけますか?それもログで直前に URL が表示されると思いますが、そちらで生成した物でしょうか?
ブートローダーが含まれていることで間違いないでしょうか?(前に表示されているログで表示されると思いますが、ファイルをダウンロードして 「mkswu --show update.swu」でも確認できます)

このアップデートが通れば、再びアップデートしようとする時にバージョンが変わってないことが確認できるので、ディスクモードでもコンテナが停止しないようになります。

また、ディスクモードでそういうところで失敗が発生した際にコンテナを再起動した方がよさそうですね。この点は mkswu の更新で対応しますので、今月末のアップデート以降に「コンテナを一時的に停止してから、失敗で再び起動された」ことになります。
それでも大変不便なので、他の問題を修正した方がいいと思います。

> swupdate-url: auto-update warning: Could not write next update time to /var/log/swupdate/swupdate-url.state
> swupdate-url: Next run on Tue Oct 24 02:21:39 JST 2023, sleeping 543579s

最後に、この「Could not write next update time」も気になります。
state ファイルを書き込みできなかったことで、Armadillo が起動する度にアップデートを確認することになります。
なぜ書き込みできないかを確認してもらえますか?(「touch /var/log/swupdate/swupdate-url.state」でのエラーを提供していただければ助かります)
swupdate-url で親ディレクトリのチェックを行ってないので、もしかしたらそれなのでこれも今後のアップデートで対応したいと思います。(本来なら、swupdate で更新が成功した時に生成されますので、もしかしたらこの Armadillo で一度も更新が成功してないかもしれません)

色々あって大変お手数ですが、確認をよろしくお願いします。

マルティネさん
お世話になっております。
浦末です。

abos-ctrl podman-storage --tmpfs を実施し、再起動したところ、コンテナは停止しないようになりました。
その時のログです。

Oct 18 11:36:56 armadillo authpriv.info su[2662]: pam_unix(su:session): session opened for user root(uid=0) by (uid=1000)
Oct 18 11:37:32 armadillo user.info swupdate: RUN [install_single_image] : Installing post_script
Oct 18 11:37:32 armadillo user.info swupdate: RUN [read_lines_notify] : Removing unused containers
Oct 18 11:37:43 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Oct 18 11:37:43 armadillo user.err swupdate: FAILURE ERROR : /!\ Installed u-boot does not appear to be for aarch64, aborting!
Oct 18 11:37:43 armadillo user.err swupdate: FAILURE ERROR : /!\ In case of false positive, set MKSWU_NO_ARCH_CHECK=1
Oct 18 11:37:43 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Oct 18 11:37:43 armadillo user.err swupdate: FAILURE ERROR : Command failed: sh -c 'sh $1' -- /var/tmp/swupdate-url.iaboNO//zst.scripts_post.sh
Oct 18 11:37:43 armadillo user.err swupdate: FAILURE ERROR : Error streaming zst.scripts_post.sh
Oct 18 11:37:43 armadillo user.err swupdate: FATAL_FAILURE Image invalid or corrupted. Not installing ...
Oct 18 11:37:43 armadillo user.info swupdate: IDLE Waiting for requests...
Oct 18 11:37:44 armadillo user.notice swupdate-url: auto-update warning: Could not write next update time to /var/log/swupdate/swupdate-url.state
Oct 18 11:37:44 armadillo user.notice swupdate-url: Next run on Wed Oct 25 04:39:12 JST 2023, sleeping 579688s
Oct 18 11:38:39 armadillo auth.crit sshd[2090]: fatal: Timeout before authentication for 192.168.201.53 port 52024

>そのアップデートについてもう少し教えていただけますか?それもログで直前に URL が表示されると思いますが、そちらで生成した物でしょうか?
すみません、この部分が良く理解できていない為、飛ばしております。

>なぜ書き込みできないかを確認してもらえますか?(「touch /var/log/swupdate/swupdate-url.state」でのエラーを提供していただければ助かります)

armadillo:~# touch /var/log/swupdate/swupdate-url.state
touch: cannot touch '/var/log/swupdate/swupdate-url.state': No such file or directory

/var/log/swupdate このフォルダがありませんでした。
フォルダ作成後、再起動したログが下記になります。

Oct 18 12:02:04 armadillo daemon.info avahi-daemon[1542]: Registering new address record for fe80::b467:7cff:fef4:3c9f on veth0.*.
Oct 18 12:02:48 armadillo user.info swupdate: RUN [install_single_image] : Installing post_script
Oct 18 12:02:48 armadillo user.info swupdate: RUN [read_lines_notify] : Removing unused containers
Oct 18 12:02:58 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Oct 18 12:02:58 armadillo user.err swupdate: FAILURE ERROR : /!\ Installed u-boot does not appear to be for aarch64, aborting!
Oct 18 12:02:58 armadillo user.err swupdate: FAILURE ERROR : /!\ In case of false positive, set MKSWU_NO_ARCH_CHECK=1
Oct 18 12:02:58 armadillo user.err swupdate: FAILURE ERROR : ----------------------------------------------
Oct 18 12:02:59 armadillo user.err swupdate: FAILURE ERROR : Command failed: sh -c 'sh $1' -- /var/tmp/swupdate-url.7QoA27//zst.scripts_post.sh
Oct 18 12:02:59 armadillo user.err swupdate: FAILURE ERROR : Error streaming zst.scripts_post.sh
Oct 18 12:02:59 armadillo user.err swupdate: FATAL_FAILURE Image invalid or corrupted. Not installing ...
Oct 18 12:02:59 armadillo user.info swupdate: IDLE Waiting for requests...
Oct 18 12:02:59 armadillo user.notice swupdate-url: Next run on Wed Oct 25 02:44:10 JST 2023, sleeping 571271s
armadillo:~# touch /var/log/swupdate/swupdate-url.state
armadillo:~#

ご確認の程、よろしくお願いいたします。

at_dominique.m…

2023年10月18日 17時49分

浦末さん

マルティネです。

> >そのアップデートについてもう少し教えていただけますか?それもログで直前に URL が表示されると思いますが、そちらで生成した物でしょうか?
>
> すみません、この部分が良く理解できていない為、飛ばしております。

すみません、ご自分が設定していた物だと勘違いしていたようです。
/var/log/messages にアップデートが失敗する前に「Oct 18 08:31:32 armadillo user.notice swupdate: Trying to update https://download.atmark-techno.com/armadillo-iot-g4/image/baseos-x2-lat…」のようなログが出力されるはずですが、そこに記載されている URL を教えていただけますか。

また、以下の二つのコマンドの出力も教えていただけたら助かります。

armadillo:~# cat /etc/atmark-release 
armadillo:~# grep boot /etc/sw-versions
armadillo:~# cat /etc/hwrevision
armadillo:~# xxd -l 8 /dev/mmcblk2boot0
armadillo:~# strings /dev/mmcblk2boot0 | grep -m 1 2020.04
armadillo:~# xxd -l 8 /dev/mmcblk2boot1
armadillo:~# strings /dev/mmcblk2boot1 | grep -m 1 2020.04
> armadillo:~# touch /var/log/swupdate/swupdate-url.state
> touch: cannot touch '/var/log/swupdate/swupdate-url.state': No such file or directory

>
> /var/log/swupdate このフォルダがありませんでした。
> フォルダ作成後、再起動したログが下記になります。

了解しました、そのディレクトリはアップデートが成功する際に生成されますが、カスタムなインストールディスク等を使う場合はアップデートを一つもインストールせずに実行される可能性もありますので対応します。
この armadillo に関してはそのディレクトリが消えませんので、これからは再起動がはさめても正しく週に一度しかアップデートを実行しません。

よろしくお願いします。

マルティネさん
お世話になっております。
浦末です。

> /var/log/messages にアップデートが失敗する前に「Oct 18 08:31:32 armadillo user.notice swupdate: Trying to update https://download.atmark-techno.com/armadillo-iot-g4/image/baseos-x2-lat…」のようなログが出力されるはずですが、そこに記載されている URL を教えていただけますか。

このログが出力されていました。

Oct 18 12:01:50 armadillo user.notice swupdate: Trying to update https://download.atmark-techno.com/armadillo-x2/image/baseos-x2-latest.swu

以下は、コマンドの実行結果になります。

armadillo:~#  cat /etc/atmark-release
3.18.3-at.4
armadillo:~#  grep boot /etc/sw-versions
boot 2020.04-at19
armadillo:~#  cat /etc/hwrevision
AX2210 at1
armadillo:~#
armadillo:~# xxd -l 8 /dev/mmcblk2boot0
00000000: d100 2041 0000 9200                      .. A....
armadillo:~# strings /dev/mmcblk2boot0 | grep -m 1 2020.04
U-Boot SPL 2020.04-at19 (Sep 27 2023 - 04:50:47 +0000)
armadillo:~# xxd -l 8 /dev/mmcblk2boot1
00000000: 0000 0000 0000 0000                      ........
armadillo:~# strings /dev/mmcblk2boot1 | grep -m 1 2020.04
armadillo:~#

ご確認の程、よろしくお願いいたします。

at_dominique.m…

2023年10月20日 16時11分

浦末さん、

マルティネです。

> Oct 18 12:01:50 armadillo user.notice swupdate: Trying to update https://download.atmark-techno.com/armadillo-x2/image/baseos-x2-latest.swu
> armadillo:~#  cat /etc/atmark-release
> 3.18.3-at.4
> armadillo:~#  grep boot /etc/sw-versions
> boot 2020.04-at19
> armadillo:~#  cat /etc/hwrevision
> AX2210 at1
> armadillo:~#
> armadillo:~# xxd -l 8 /dev/mmcblk2boot0
> 00000000: d100 2041 0000 9200                      .. A....
> armadillo:~# strings /dev/mmcblk2boot0 | grep -m 1 2020.04
> U-Boot SPL 2020.04-at19 (Sep 27 2023 - 04:50:47 +0000)
> armadillo:~# xxd -l 8 /dev/mmcblk2boot1
> 00000000: 0000 0000 0000 0000                      ........
> armadillo:~# strings /dev/mmcblk2boot1 | grep -m 1 2020.04
> armadillo:~#

情報提供ありがとうございます、おかげさまで直接な原因を確認できて、修正できました。
(「boot」のバージョンが 2020.04-at19 になっていますが、ソフトウェア的には 2020.4-at19 になっているはずで、その確認に齟齬で B面にブートローダーが書き込まれませんでした。今回は B面がまだ書き込みされてない状態なので、最終確認でブートローダーの問題を発見してエラーしています。そのバージョンの齟齬があっても、正しく同一確認できるように修正しました。)

修正は今月末に適用されますので、それまでの失敗を無視していただいても問題ありません。
また、何か別の swu をインストールしていただけました場合でも、ブートローダーがコピーされてこの失敗は発生されなくなります。

なんで 2020.4 ではなく 2020.04 が記載されてあるのが少し気になっていますが、もう問題になることはないのでこのままで問題ないと思います。

また何かありましたがまら聞いてください。
よろしくお願いします