ソフトウェア技術者のためのバグ百科事典(2)まだあるぞ、うるう年バグ山浦恒央の“くみこみ”な話(123)(3/3 ページ)

» 2019年11月07日 11時00分 公開
前のページへ 1|2|3       

5.うるう年の誤認識によるバグの実例

 うるう年の誤認識によるバグ(平年をうるう年と誤認した、うるう年を平年にした)は、意外に多く、Webサイトに載っている主なものでも、以下のバグがあります。発生年月日に注目して、ご覧ください。

2019年10月12日発表(上記で解説済み)

 Excelが1900年をうるう年として誤設定していた(マイクロソフトのサポートWebサイト)。

2012年2月29日発生

 Microsoft WindowsのAzureが、うるう年の誤認識で、2012年2月29日から3月1日朝まで24時間以上、サービスが中断した。

2010年3月1日発表

 ソニーのゲーム機「プレイステーション 3」で、2010年をうるう年と誤認識したことで、今までプレイして集めた「トロフィーが消える」現象が発生した。

2008年2月18日発表

 シチズンの電波時計が、うるう年の誤認のため、「2010年1月1日以降に電波を受信すると、カレンダー部分が正常に表示されないなどの現象が発生する」と発表(インターネットアーカイブより)。

2008年12月31日

 マイクロソフトの音楽プレーヤー「Zune 30GB」が、うるう年のバグにより12月31日に動作停止した。2009年1月1日の正午(GMT)に自然治癒した。

2008年12月31日

 東芝の音楽プレーヤー「gigabeat Tシリーズ」で、うるう年の誤認識により、約24時間使用できなかった(日付が替わり、自動復旧した)。

2012年2月29日

 シャープ製Blu-rayレコーダーで、うるう年の誤認識のため、2012年2月29日、番組予約で「この予約は最後まで実行できません」との誤メッセージを表示(実際には、予約は可能だった)。

6.まとめ

 うるう年バグをまとめます。

  • うるう年バグが発生すると、プログラムが存在しない日に基づいて動作するため、想定通りの動作をしない可能性がある
  • 機器の主機能に影響を与える可能性があり、バグの影響度は高い
  • バグは、一定期間(通常、24時間)が経過すると元に戻る可能性がある
  • バグを防ぐには、成果物(仕様、設計書、プログラム)でうるう年を考慮しているか確認する。また、「2月29日」と「12月31日」のテストを実施する
  • バグは2月29日、12月31日に多く発生することが多く、この日に突然バグが発生し、一定時間(通常24時間)で自然治癒する場合は、うるう年バグを疑う必要あり

7.終わりに

 前回に引き続き、うるう年のバグを紹介しました。過去、組み込み系製品でも、うるう年のバグはさまざまな製品で発生してきました。うるう年バグは、時限爆弾のように発生するので事前にしっかり対策し、バグを作らないよう注意しましょう。

参考文献

[1]なぜシステムがダウンするのか 知っておきたいシステム障害、信頼性の基礎知識((著)大和田尚孝、(監)日経コンピュータ、2009年、日経BP)

【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.