Armadilloフォーラム

2038年問題のArmadilloの挙動について

y.hiroishi

2023年5月16日 8時50分

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

2038年問題について、Armadillo-Iot G3では対応されていないとのことですが、
実際にdateコマンドで時刻を2038年1月19日3時13分に設定した際に発生した事象を下記に記載します。
シャットダウンしようとhaltコマンドを打ってもシャットダウンされませんでした。
仮に2038年になった場合、Armadilloの挙動としてはエラー発生、動かしていたプログラムは止まりますという認識でよろしいでしょうか。
ご教示いただけますと幸いです。宜しくお願い致します。

>root@armadillo:~# date
>Tue Jan 19 03:13:02 JST 2038
>root@armadillo:~#
>Message from syslogd@armadillo at Jan 19 03:13:33 ...
>systemd[1]: Failed to run main loop: Invalid argument
>Broadcast message from systemd-journald@armadillo (Tue 2038-01-19 03:13:33 JST):
>systemd[1]: Failed to run main loop: Invalid argument
>!!!!!!systemd: 21 output lines suppressed due to ratelimiting
>Failed to run main loop.
>Broadcast message from systemd-journald@armadillo (Tue 2038-01-19 03:13:33 JST):
>systemd[1]: Freezing execution.
>Message from syslogd@armadillo at Jan 19 03:13:33 ...
>systemd[1]: Freezing execution.

>root@armadillo:~# halt
>systemd-journald[287]: Failed to send WATCHDOG=1 notification message: Transport endpoint is not connected
>Failed to open initctl fifo: No such device or address
>Failed to talk to init daemon.

コメント

溝渕です。

> 仮に2038年になった場合、Armadilloの挙動としてはエラー発生、動かしていたプログラムは止まりますという認識でよろしいでしょうか。

時刻のオーバーフロー発生時の挙動は定義していません。時刻のオーバーフローによる問題は、時刻がゆるやかに単純増加を期待している全てのソフトウェアで発生し、停止するものもあればエラーとなるものもあると思います。

ソフトウェアやハードウェア構成、時刻のオーバーフロー時に実行されているプロセス等により、発生する問題は様々になるかと思います。

三原と申します。割り込み失礼致します。

> 時刻のオーバーフロー発生時の挙動は定義していません。

承知しました。お教えいただきありがとうございます。

割り込んでおきながら、アットマークテクノ社様に恐ろしく不利益なことを書き込む失礼をお許し願います。

古い本ですが
「エキスパートCプログラミング―知られざるCの深層」
https://www.amazon.co.jp/%E3%82%A8%E3%82%AD%E3%82%B9%E3%83%91%E3%83%BC%…
に、動作が未定義とは最悪ハードウェアの発火もあり得る、という記載があります。
これは冗談ではなく、熱暴走により発火という事態も製品によってはあり得ます。

hiroishi 様が Armadillo-IoT G3 でお試しになられてそのような事態にならなかったということは、当該製品ではそこまでの被害は出ないと予想します。
ただ、一般論では、動作は全く予測がつかないということは承知しております。

その旨を踏まえて対応いたします。

溝渕です。

> 割り込んでおきながら、アットマークテクノ社様に恐ろしく不利益なことを書き込む失礼をお許し願います。

いえ。私も驚かすような表現をしてしまいすみませんでした。

> に、動作が未定義とは最悪ハードウェアの発火もあり得る、という記載があります。

「動作が未定義」 == 「何が発生してもおかしくない」
という意味での記載かと思います。

私の意図としては、ソフトウェアにバグが無いことが証明できないのと似通った意味で、時刻のオーバーフロー発生時の挙動は定義できないとお伝えしたかったのです。

> これは冗談ではなく、熱暴走により発火という事態も製品によってはあり得ます。

Armadilloは、(試験仕様は非公開ですが)高温環境下での長時間のランニングを実施して安全性を確認しております。また、Armadillo-IoT G3では温度が一定以上になるとThermal shutdownする機能が搭載されており、発火の可能性は十分低いと思います。但し、Armadilloに接続する周辺機器についてはこの限りではありません。

溝渕様

三原と申します。

> 「動作が未定義」 == 「何が発生してもおかしくない」
> という意味での記載かと思います。
>
> 私の意図としては、ソフトウェアにバグが無いことが証明できないのと似通った意味で、時刻のオーバーフロー発生時の挙動は定義できないとお伝えしたかったのです。

狭い意味での動作未定義ではなく、安全性を担保する試験も行われているとのことで、安堵いたしました。

ありがとうございます。

お世話になっております。
ご回答ありがとうございます。
> 時刻のオーバーフロー発生時の挙動は定義していません。時刻のオーバーフローによる問題は、時刻がゆるやかに単純増加を期待している全てのソフトウェアで発生し、停止するものもあればエラーとなるものもあると思います。
> ソフトウェアやハードウェア構成、時刻のオーバーフロー時に実行されているプロセス等により、発生する問題は様々になるかと思います。
>
問題は様々とのこと理解いたしました。
ありがとうございます。