閏秒その後

閏秒対応については,ここに書いたとおり,ウチの担当システムはすべて,7 月 1 日 9 時前後の数分間,止めました。で,まったく問題なく今週頭の業務開始を迎えることができました。

ところが,このわかり切った閏秒問題で,やっぱり方々でシステム障害が出たようである。たとえばこの記事「Linux は閏秒対応している」ことに幻惑され,却って障害にハマったのではなかろうか。システムを数分間計画停止させれば避けられたのに,閏秒ゆえの障害で丸一日システムを不安定にし,しかもその対策に多大な工数を要してしまったとしたら,お笑いである。コンピュータ・ジョークとはまさに之の謂。

Windows や FreeBSD は「60 秒」を返さない,要するに「伝統的な」作りになっているらしく,おかげであんまりトラブルはなかったのではないかと私は思う。自宅の FreeBSD 8.2-RELEASE では,秒単位で時刻を表示させると 8 時 59 分 59 秒が 2 秒間続き(2 回表示され)9 時 0 分 0 秒となった(以下のような C++ プログラムで確認した)。この間に NTP が時刻同期したわけで,時刻の表示についても閏秒の瞬間を除きほぼ何の問題もなかった。閏日(2.29)未対応は冗談では済まされないが,閏秒なんて一瞬の調整のためにごたごた作り込まないほうがよいのである。

#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    while (true) {
        time_t now = time(0);
        tm* ltime = localtime(&now);
        cout << asctime(ltime) << endl;
        sleep(1);
    }
}


* * *

なんか天気いいですね。しばらく晴れが続くようだ。昼間は暑くても,夕方には窓を開けると涼しい風が吹いて来て,気持ちがよい。ホントこれで梅雨なんだろうか。

今日,定時で仕事を上がって帰宅途中,戸塚駅での人身事故のために,私の乗り合わせた JR 横須賀線・横浜方面への下り電車が武蔵小杉駅で運行を停止した。「しばらく運行を見合わせます。横浜方面へお急ぎの方は東急東横線への振替乗車を行います」とのアナウンス。「戸塚駅ならここから4駅,横浜駅から3駅も先じゃねえか。オレは次の新川崎で降りるんだから,行ける所までは行けよ!」と,自分勝手な怒りを覚えたが,ま,急いでいるわけでなし,いいか,と思い直し,そのまま本を読んでいた。

ところが,「横浜方面へお急ぎの方」たちがゾロゾロ乗り換えに急いでいるその最中に,先のアナウンスから5分と経過していないのに,「安全が確認されましたので発車いたします」と来た。なんか行き当たりばったりの感じが否めなかった。横須賀線はラッシュ時でも 10 分に 1 本くらいのトラフィックなので,駅間で立ち往生する列車が何本もあるとは思えず,もとから武蔵小杉駅で時間をつぶさなくても横浜駅くらいまでは運行可能だったに違いない。東横線に乗り換えた人が可哀想であった。でも安全第一! JR の判断を尊重すべきである。