入力データを全面的に信用してはならない
いや、確かに秒が60になるなんて想定はしないし、テストしきれなくてもムリないよ、これは。
7月1日のsyslogに以下のようなログが記録されているかどうかをご確認ください。
うるう秒のあとにMySQLなどのCPU使用率が高騰する件について - SH2の日記
Jul 1 08:59:59 sbridge kernel: Clock: inserting leap second 23:59:60 UTC
MySQLの場合、MySQL 5.5においてsrv_lock_timeout_threadとsrv_error_monitor_threadというバックグラウンドスレッドがこの不具合により暴走します。MySQL 5.1についてはこれらのバックグラウンドスレッドがfutex(2)を利用していないため、CPU使用率の高騰は発生しませんでした。
他にもうるう秒関連の障害がいくつかあったみたいね。2000年問題を思い出したよ。
この問題の教訓は「入力データを全面的に信用してはならない」ということかな。「秒は0から59まで」なんてのは思い込みに過ぎないわけだ。「こんなデータがくるはずはない」「ここは上位モジュールでチェックされるはず」なんて言わず「入力データは疑え」っていう基本的な原則を忘れちゃいけないんだな。
「人の振り見て我が振り直せ」と :)