• お問い合わせ
  • ユーザー登録
ドキュメント
サポート案内
ユーザー登録
サポートセンター
ドキュメント
ダウンロード
セキュリティ
よくある質問とその回答
製品マニュアル
カタログ
収録パッケージ一覧


ガイド No. 389

「2001年9月9日問題」について


                                                          2001 年 4 月 17 日
                        「2001年9月9日問題」に関して

【おことわり】
この FAQ では、お客様に弊社の持つ情報をできるだけ提供致したいという趣旨で
書かれており、弊社が何かを保証するということではございません。これらの情報提
供に関しましては、できる限り正確に真実をお伝えするよう最大限の努力をしており
ますが、不正確な部分があるかもしれません。これらの情報は、お客様自身のリスク
でご使用下さい。これらの情報に起因し、お客様が何らかの損害を被られた場合で
も、弊社は一切の責任を負いかねますので、予めご了承下さい。

また、他に再現事例がありましたら、御一報ください。
今後の調査に役立つかと思いますので、御協力頂けると助かります。


[目次]

1. 問題報告している情報ソースについて
2. 報告されている障害の内容説明
3. 弊社の見解
4. テスト項目と結果
5. 弊社のスタンスと今後の対応方針
A. 2001年9月9日問題のテストレポート

[本文]

1. 問題報告している情報ソースについて
=====================================
「2001年9月9日問題」に関してアナウンスをしている WEB サイトとして、下記のもの
がありました。

[2001年9月9日問題をアナウンスしている代表的 WEB サイト」
------------------------------------------------------------------------
(1) http://bizit.nikkeibp.co.jp/it/y2k/about/non-y2k.html
(2) http://www.mitre.org/research/y2k/docs/DATES.html
------------------------------------------------------------------------
(1) は、日本におけるマスコミからの発信の1つ、その情報元が (2) で広く Y2K 関連
問題の内容を紹介しています。また、他に「2001年9月9日問題」が実際に発生してしま
う事例もありましたが、ここではその URL を省略致します。

しかし、
・Linuxでの障害報告
・他ディストリビューターの対応状況
・代表的UNIXベンダーの対応状況
以上、3種類の WEB サイトでは、特に「2001年9月9日問題」に関するアナウンスは現在
のところありませんでした。


2. 報告されている障害の内容説明
===============================
1. で触れました事例には、3 つの製品がありました。
その特徴をまとめると、下記のようになります。

[事例の特徴]
------------------------------------------------------------------------
○障害修正のためのアップデートモジュールは、  3 つとも、ユーザ側のアプリケーシ
  ョン部分である。
○OS に元々付属しているカーネルおよびデーモンには問題がない。
○障害発生時には問題のアプリケーション自体の動作異常にはなるが、  OS を含めたシ
  ステム全体の停止には至っていない。
------------------------------------------------------------------------

報告されている事例で使用しているプラットフォームは、Linux ではありませんでした
が、障害発生時の規模、影響度の予測の参考になります。


3. 弊社の見解
===================
本来の Y2K 問題の原因である西暦を下 2 桁で表現する方法は、メリットとして、
・表現が人間にとって短いく分かりやい
・データ量が節約できる
等があり、デメリットとして、
・西暦 100 年の区切りの処理が繁雑になる
という特徴があります。このデメリット部分を不用意に処理した時に発生する障害等が
「2000問題」でした。

数ヵ月後に懸念される類似問題があります。システムコール time() 関数の返却値を十
進表現した場合、2001 年 9 月 9 日に 9 桁から 10 桁に変わります。この現象を認識
せずに、不用意に設計/プログラミングされたアプリケーション等が起こす障害のこと
を「2001年9月9日問題」と呼びます。例えば、アプリケーションの処理の一部の機能と
して、ログの出力や一時ファイルの名称等などに、システムコールtime() 関数の返却
値を 10 進数表記を用い、 9 桁固定を前提として扱っている場合などに問題が発生し
ます。

その十進表現ですが、メリットとして、
・time stamp を時系列的に表現するのに役立つ (例えば、ログ出力や、一時ファイルの
  名称等に利用)
がある一方、デメリットとして、
・表現が人間にとって分かりづらい
・効率が悪い(データサイズの増加、および、その変換にかかる時間が必要)
等があります。

このデメリットのため、ミッションクリティカルな処理に影響を与える、Linux OS のカ
ーネルおよびデーモンにおいて、この「2001年9月9日問題」の原因である「十進表現」
が使用されている可能性は極めて低いと推測されます。一方、そのメリットを利用した
アプリケーションの存在は否定できません。ユーザが直接目にしない部分に使用されて
いる可能性があります。OS のカーネル/デーモンの場合と比較すると、多いと予測でき
ます。実際に事例もありました。したがって、ユーザ側アプリケーションの検証は十分
実施しておくことが必要です。


4. テスト項目と結果
=======================================
上記項目3. の傍証として、Turbolinux Server 6.5 を利用してテストを実施しました。
別項「A. 2001年9月9日問題のテストレポート」を御参照ください。

現状の弊社における調査においては、テスト対象の Linux OS におけるカーネルとサー
ビスに、問題が発見されませんでした。


5. 弊社のスタンスと今後の対応方針
===================================
(1) 万が一「2001年9月9日問題」が発見/発生した場合、他の障害と同様に迅速に処理
     (告知、アップデートの提供)致します。
(2) セキュリティ問題、および、システム停止に至るような問題を最優先とします。
(3) Y2K 関連問題に関しては、基本的OS、アプリの簡単な動作確認を行います。
    フリーソフトウェアを基礎にしている性質上、全製品・全パッケージの確認は致し
    ません。
(4) 「2001年9月9日問題」に関して広く障害情報の提供をお願い致します。

以上


A. 2001年9月9日問題のテストレポート
===================================
                                                             2001年4月12日 

                    2001年9月9日問題のテストレポート

                                          ターボリナックスジャパン株式会社


2001年9月9日問題による障害発生の可能性を調査しました。
ご参考ください。

1. 問題詳細

 システムコール time() 関数の返却値(time_t型)は1970年1月1日00:00:00から
の積算秒数を表現し、調査時点の2001年4月12日 17:30:00(日本時間)現在の値は
987064200になっております。
これが2001年9月9日 10:46:40(日本時間)に1000000000に達し、9桁から10桁に変
わります。この状態でアプリケーションに障害が発生する可能性を示しているの
がいわゆる「2001年9月9日問題」です。


2. 試験項目

弊社製品をインターネット用サーバーとして利用する上で必要とされるサービス
を提供するアプリケーションに関しまして以下の調査を致しました。

(1) 9/9以前での動作確認
(2) 9/9 10:46:40 をまたぐ時間帯での動作確認
(3) 9/9 10:46:40 以降の動作確認

◆ 調査アプリケーション
 A. Apache
 B. bind
 C. sendmail
 D. Perl
 E. dateおよびlsコマンド
 F. システムログ

A.〜C.はサーバー用アプリケーションであり、D.はWebアプリケーションのCGIと
してよく用いられるため調査対象としました。
E,FはOSとOSに近いアプリケーションの検査です。


3. 試験内容

 (1)、(2)、(3)ともに以下の試験を行いました。

 A. w3m(端末インターフェースでのWebブラウザ)により一定間隔でWebページを
   参照し、結果を比較します。
 B. nslookup(ネームサーバー照会プログラム)により一定間隔で名前解決を行い、
   結果を比較します。
 C. テストユーザー宛のメールを一定間隔で送信し、受信結果を比較します。
 D. 時間の取得、表示を一定間隔で繰り返し、結果を比較します。
 E. 該当時間に date コマンドを実行し、結果を確認します。
 F. テスト終了後のログファイルの内容を確認します。


4. 試験結果

 A.〜F.の項目を(1)、(2)、(3)のケースについて検査致しましたが、いずれの場
合も問題は発生致しませんでした。
結果を別紙に添付致しますのでご確認ください。


5. 結論

弊社製品にて提供しておりますインターネットサーバー向けアプリケーション
(Apache、bind、sendmail、Perl、OS周辺アプリケーション)では、2001年9月9日
問題は発生いたしません。

A. Apache

★access_log
(1)
127.0.0.1 - - [12/Apr/2001:13:07:13 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [12/Apr/2001:13:08:13 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [12/Apr/2001:13:09:13 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [12/Apr/2001:13:10:14 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [12/Apr/2001:13:11:14 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [12/Apr/2001:13:12:14 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [12/Apr/2001:13:13:14 +0900] "GET /index.html HTTP/1.0" 200 1581

(2)〜(3)
127.0.0.1 - - [09/Sep/2001:10:37:27 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:38:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:39:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:40:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:41:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:42:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:43:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:44:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:45:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:46:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:47:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:48:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:49:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:50:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:51:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:52:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:53:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:54:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:55:28 +0900] "GET /index.html HTTP/1.0" 200 1581
127.0.0.1 - - [09/Sep/2001:10:56:28 +0900] "GET /index.html HTTP/1.0" 200 1581


★アクセス結果

(1)

Thu Apr 12 12:54:13 JST 2001
もしこのページが読めたのであれば、Apache ウェブサーバのインストールがこの計算機
で無事に終了したことを意味します。あなたは、このディレクトリに文書を加えたり、
このページを置きかえることができます。
                    ━━━━━━━━━━━━━━━━━━━                    

            あなたの予想に反して、このページが見えているでしょうか?            
                                                                               
このページは、サイト管理者がこの web サーバの設定を変更したために見えています。
このサーバを管理する責任を持っている方に連絡をとってください。このサイト管理者
が利用している web サーバを開発した The Apache Software Foundation は、このサイ
トの web サーバの管理とは関係がなく、サーバの設定に関する問題を解決することはで
きません。
                    ━━━━━━━━━━━━━━━━━━━                    

Apache に関する文書は、この web サーバ配布物の中に含まれています。

以下の画像は、Apache を利用している web サーバで自由に使うことができます。
Apache をご利用いただき、ありがとうございます!
                                  [apache_pb]                                  


(2)〜(3)

Sun Sep  9 10:46:28 JST 2001
もしこのページが読めたのであれば、Apache ウェブサーバのインストールがこの計算機
で無事に終了したことを意味します。あなたは、このディレクトリに文書を加えたり、
このページを置きかえることができます。
                    ━━━━━━━━━━━━━━━━━━━                    

            あなたの予想に反して、このページが見えているでしょうか?            
                                                                               
このページは、サイト管理者がこの web サーバの設定を変更したために見えています。
このサーバを管理する責任を持っている方に連絡をとってください。このサイト管理者
が利用している web サーバを開発した The Apache Software Foundation は、このサイ
トの web サーバの管理とは関係がなく、サーバの設定に関する問題を解決することはで
きません。
                    ━━━━━━━━━━━━━━━━━━━                    

Apache に関する文書は、この web サーバ配布物の中に含まれています。

以下の画像は、Apache を利用している web サーバで自由に使うことができます。
Apache をご利用いただき、ありがとうございます!
                                  [apache_pb]                                  



Sun Sep  9 10:47:28 JST 2001
もしこのページが読めたのであれば、Apache ウェブサーバのインストールがこの計算機
で無事に終了したことを意味します。あなたは、このディレクトリに文書を加えたり、
このページを置きかえることができます。
                    ━━━━━━━━━━━━━━━━━━━                    

            あなたの予想に反して、このページが見えているでしょうか?            
                                                                               
このページは、サイト管理者がこの web サーバの設定を変更したために見えています。
このサーバを管理する責任を持っている方に連絡をとってください。このサイト管理者
が利用している web サーバを開発した The Apache Software Foundation は、このサイ
トの web サーバの管理とは関係がなく、サーバの設定に関する問題を解決することはで
きません。
                    ━━━━━━━━━━━━━━━━━━━                    

Apache に関する文書は、この web サーバ配布物の中に含まれています。

以下の画像は、Apache を利用している web サーバで自由に使うことができます。
Apache をご利用いただき、ありがとうございます!
                                  [apache_pb]                                  

B. Bind

(1) 

Thu Apr 12 12:54:09 JST 2001
Server:  num1.turbo.net
Address:  192.168.2.191

Name:    nbr2.turbo.net
Address:  192.168.2.192


(2)〜(3)

Sun Sep  9 10:46:17 JST 2001
Server:  num1.turbo.net
Address:  192.168.2.191

Name:    nbr2.turbo.net
Address:  192.168.2.192

Sun Sep  9 10:47:17 JST 2001
Server:  num1.turbo.net
Address:  192.168.2.191

Name:    nbr2.turbo.net
Address:  192.168.2.192


C. sendmail

★maillog

(1)

Apr 12 13:09:19 num1 sendmail[992]: NAA00992: from=test, size=87, class=0, pri=30087, nrcpts=1, msgid=<200104120409.NAA00992@num1.turbo.net>, relay=test@localhost
Apr 12 13:09:19 num1 sendmail[996]: NAA00992: to=test@localhost, ctladdr=test (500/100), delay=00:00:00, xdelay=00:00:00, mailer=pmlocal, stat=Sent


(2)〜(3)

Sep  9 10:46:33 num1 sendmail[661]: KAA00661: from=test, size=86, class=0, pri=30086, nrcpts=1, msgid=<200109090146.KAA00661@num1.turbo.net>, relay=test@localhost
Sep  9 10:46:33 num1 sendmail[665]: KAA00661: to=test@localhost, ctladdr=test (500/100), delay=00:00:00, xdelay=00:00:00, mailer=pmlocal, stat=Sent
Sep  9 10:47:33 num1 sendmail[685]: KAA00685: from=test, size=87, class=0, pri=30087, nrcpts=1, msgid=<200109090147.KAA00685@num1.turbo.net>, relay=test@localhost
Sep  9 10:47:33 num1 sendmail[689]: KAA00685: to=test@localhost, ctladdr=test (500/100), delay=00:00:00, xdelay=00:00:00, mailer=pmlocal, stat=Sent

★送信メール

(1)

>From test  Thu Apr 12 13:09:19 2001
Return-Path: <test>
Received: (from test@localhost)
        by num1.turbo.net (8.9.3+3.2W/3.7W) id NAA00992
        for test@localhost; Thu, 12 Apr 2001 13:09:19 +0900
Date: Thu, 12 Apr 2001 13:09:19 +0900
From: test
Message-Id: <200104120409.NAA00992@num1.turbo.net>
To: test@num1.turbo.net
Subject: No 15 message
Status: RO

A quick brown fox jumpes over the lazy dog.


(2)〜(3)

>From test  Sun Sep  9 10:46:33 2001
Return-Path: <test>
Received: (from test@localhost)
        by num1.turbo.net (8.9.3+3.2W/3.7W) id KAA00661
        for test@localhost; Sun, 9 Sep 2001 10:46:33 +0900
Date: Sun, 9 Sep 2001 10:46:33 +0900
From: test
Message-Id: <200109090146.KAA00661@num1.turbo.net>
To: test@num1.turbo.net
Subject: No 9 message
Status: RO

A quick brown fox jumpes over the lazy dog.

>From test  Sun Sep  9 10:47:33 2001
Return-Path: <test>
Received: (from test@localhost)
        by num1.turbo.net (8.9.3+3.2W/3.7W) id KAA00685
        for test@localhost; Sun, 9 Sep 2001 10:47:33 +0900
Date: Sun, 9 Sep 2001 10:47:33 +0900
From: test
Message-Id: <200109090147.KAA00685@num1.turbo.net>
To: test@num1.turbo.net
Subject: No 10 message
Status: RO

A quick brown fox jumpes over the lazy dog.



D. Perl

★実行ログ

(1) 
time: 987068140 lt: Thu Apr 12 18:35:40 2001    tl: 987068140   OK
time: 987068140 gt: Thu Apr 12 09:35:40 2001    tg: 987068140   OK

time: 987068141 lt: Thu Apr 12 18:35:41 2001    tl: 987068141   OK
time: 987068141 gt: Thu Apr 12 09:35:41 2001    tg: 987068141   OK


(2)〜(3)

time: 999999989 lt: Sun Sep  9 10:46:29 2001    tl: 999999989   OK
time: 999999989 gt: Sun Sep  9 01:46:29 2001    tg: 999999989   OK

time: 999999999 lt: Sun Sep  9 10:46:39 2001    tl: 999999999   OK
time: 999999999 gt: Sun Sep  9 01:46:39 2001    tg: 999999999   OK

time: 1000000009        lt: Sun Sep  9 10:46:49 2001    tl: 1000000009  OK
time: 1000000009        gt: Sun Sep  9 01:46:49 2001    tg: 1000000009  OK

time: 1000000019        lt: Sun Sep  9 10:46:59 2001    tl: 1000000019  OK
time: 1000000019        gt: Sun Sep  9 01:46:59 2001    tg: 1000000019  OK



E. date, ls

★date

(1)
Thu Apr 12 18:43:56 JST 2001

(2)(3)
Sun Sep  9 10:45:33 JST 2001
Sun Sep  9 10:46:15 JST 2001
Sun Sep  9 10:46:38 JST 2001
Sun Sep  9 10:46:41 JST 2001
Sun Sep  9 10:46:43 JST 2001
Sun Sep  9 10:46:49 JST 2001


★ls

(1)
-rw-r--r--    1 test     users        2638 Apr 12 13:13 nslookup-Pre.log
-rw-r--r--    1 test     users       24058 Apr 12 13:13 w3m-Pre.log

(2)(3)
-rw-r--r--    1 test     users        2540 Sep  9 10:56 nslookup.log
-rw-r--r--    1 test     users       12556 Sep  9 10:53 perl-post.log
-rw-r--r--    1 test     users       22940 Sep  9 10:56 w3m.log



F. システムログ(/var/log/messages)

(1)
Apr 12 11:48:01 num1 kernel: Symbols match kernel version 2.2.18.
Apr 12 11:48:01 num1 kernel: Loaded 202 symbols from 3 modules.
Apr 12 11:48:01 num1 kernel: Linux version 2.2.18-2 (support@kernel.turbolinux.com) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 Wed Mar 14 12:38:41 JST 2001
Apr 12 11:48:01 num1 kernel: Detected 647196 kHz processor.
Apr 12 11:48:01 num1 kernel: Console: colour VGA+ 80x25
Apr 12 11:48:01 num1 kernel: Calibrating delay loop... 1291.05 BogoMIPS
Apr 12 11:48:01 num1 kernel: Memory: 127348k/131008k available (1488k kernel code, 408k reserved, 1680k data, 84k init, 0k bigmem)
Apr 12 11:48:01 num1 kernel: Dentry hash table entries: 16384 (order 5, 128k)
Apr 12 11:48:01 num1 kernel: Buffer cache hash table entries: 131072 (order 7, 512k)
Apr 12 11:48:01 num1 kernel: Page cache hash table entries: 32768 (order 5, 128k)
Apr 12 11:48:01 num1 kernel: Inode hash table entries: 16384 (128k), inode-max: 16376


(2)〜(3)
Sep  9 10:31:42 num1 kernel: Symbols match kernel version 2.2.18.
Sep  9 10:31:42 num1 kernel: Loaded 202 symbols from 3 modules.
Sep  9 10:31:42 num1 kernel: Linux version 2.2.18-2 (support@kernel.turbolinux.com) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #1 Wed Mar 14 12:38:41 JST 2001
Sep  9 10:31:42 num1 kernel: Detected 647198 kHz processor.
Sep  9 10:31:42 num1 kernel: Console: colour VGA+ 80x25
  (中略)
Sep  9 10:32:27 num1 gnome-name-server[391]: name server starting
Sep  9 10:32:27 num1 gnome-name-server[392]: starting
Sep  9 10:32:27 num1 gnome-name-server[392]: name server was running on display, exiting
Sep  9 11:09:20 num1 PAM_pwdb[880]: authentication failure; test(uid=500) -> root for su service
Sep  9 11:09:26 num1 PAM_pwdb[881]: (su) session opened for user root by test(uid=500)


以上
関連文書
(none)


Last modified : Wed Apr 25 JST 2001 # 1