[pgsql-jp: 35828] CURRENT_TIMESTAMP で取得する日時が狂う

mishima.masaki @ jp.fujitsu.com mishima.masaki @ jp.fujitsu.com
2005年 8月 15日 (月) 22:32:36 JST


三島と申します。
初めて投稿させていただきます。

PostgreSQLでCURRENT_TIMESTAMPから取得する時刻が狂う現象が発生し、困って
います。

該当版数以降のPostgreSQLのTODOリスト・リリースノート、およびGoogle検索で
調べましたが、類似の現象や関連する情報を見つけることができませんでした。


現象の詳細を末尾にまとめました。本現象の原因および解決方法をご存知の方が
いらっしゃいましたら、ご教示いただけないでしょうか?


お手数をおかけしますが、よろしくお願い申し上げます。

---------------------------------------------------------------------------
環境:
	OS: Microsoft Windows 2000 SP 4
	Cygwin: cygwin.dll 1.5.16-1
	PostgreSQL: PostgreSQL 7.4.5 on i686-pc-cygwin

現象:
	・運用中にCURRENT_TIMESTAMPで返される時刻が、何かの契機で過去の
	  日時に戻ってしまいます。

	・戻る時間の幅は大きく、1ヶ月以上前の日付になります。TimeZoneの
	  誤差ではないと考えています。

	・現象発生後にCURRENT_TIMESTAMPが指す日時は、ログから見て
	  PostgreSQLのサービスを起動した日時にほぼ一致します。このとき、
	  OSのシステム時刻は正しい時刻を指していました。

	・現象発生後にPostgreSQLのサービスを再起動することで、正しい
	  時刻に復旧させることができました。

発生契機:
	・現象発生前後のログを確認しておりますが、エラー・警告等は発生して
	  おりません。
		/var/log/PostgreSQL.log
		アプリ(Servlet)のログ
		Windowsのイベントログ

	・現象発生前後で、特に時刻を変更するような操作は行っておりません。
	  調べたところ、CURRENT_TIMESTAMPの時刻を変更する操作自体が、
	  PostgreSQLには用意されていないように思います。

	・上記のような状況のため、現象が発生する契機は今のところつかめて
	  おりません。気がついた時にはすでに時間が戻ってしまっています。

再現頻度:
	・再現頻度はまれで、6ヶ月の間に2度発生しています。
		1回目(発生日: 2005/3/29)
			当時のCURRENT_TIMESTAMPの時刻: 2005/2/6

		2回目(発生日: 2005/8/12 10:05:57)
			当時のCURRENT_TIMESTAMPの時刻: 2005/06/23 17:03:10

	・まだ2度の再現ですが、上記の通り発生間隔に一貫性はないようです。

---------------------------------------------------------------------------

以上、もし不足の情報など至らない点があるようでしたら、申し訳ありませんが
ご指摘ください。

よろしくお願いいたします。

*               Masaki Mishima                *
*      Fujitsu Kansai Chubu NetTech Inc.      *
*    Tel : 81-52-745-2565 (Ext. 7679-8272)   *
*    email: mishima.masaki @ jp.fujitsu.com    *




pgsql-jp メーリングリストの案内