virtualbox の時刻がずれている
背景
make をやっても、うまくいかないことがある。 ターゲットを共通化するために、前処理の複数のターゲットのアウトプットを同じものにしてあったが、 時刻がずれているため?、本来意図してない処理が呼ばれてしまう模様。
ntpd がインストールされているかどうかを確認する。
$ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== ntp00.iij.net 210.130.188.1 3 u 332 1024 377 2.571 1065461 2351.27 ntp01.iij.net 210.130.188.1 3 u 621 1024 377 2.735 1066141 1942.83 ntp02.iij.net 210.130.188.1 3 u 761 1024 377 2.874 1065675 2352.60
で確認。大幅にずれていることを確認した。
時刻を設定する
大幅にずれている場合は自動調整されない。
ntpdate ntp.nict.jp
などのコマンドで設定するが、先に ntpd
を止めておかないと、
24 May 13:16:45 ntpdate[8055]: the NTP socket is in use, exiting
みたいなエラーが出てしまう。
$ sudo service ntp stop * Stopping NTP server ntpd ...done. $ sudo ntpdate ntp.nict.jp 24 May 13:44:18 ntpdate[8105]: step time server 133.243.238.243 offset 1071.115719 sec $ sudo service ntp start * Starting NTP server ntpd ...done. $ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== ntp00.iij.net 210.130.188.1 3 u 11 64 1 2.312 0.382 0.000 ntp01.iij.net 210.130.188.1 3 u 10 64 1 3.126 0.034 0.000 ntp02.iij.net 210.130.188.1 3 u 9 64 1 3.070 -0.137 0.000
防止策
また発生するでしょう。
makefile のターゲットの先頭に、次のように書いた。
test `ntpq -p | grep '*' | wc -l` -ge 1 # clock sync check
意味:ntpq -p で * の行が一行以上あれば(syncされたサーバがある)OK。なければ失敗。