[pgsql-jp: 28895] Re: recovery mode後のタイムゾーンについて

sugita @ sra.co.jp sugita @ sra.co.jp
2003年 2月 2日 (日) 01:41:20 JST


  杉田です。

From: "bxcel" <bxcel @ prophet.jp>
Subject: [pgsql-jp: 28894] Re: recovery mode後のタイムゾーンについて
Date: Sun, 2 Feb 2003 00:47:33 +0900

;;; OSのオープンファイル数の上限を下記のようにして変更しました。
;;; # echo 500 >  /proc/sys/fs/file-max
;;; # cat /proc/sys/fs/file-max
;;; 500
;;; 
;;; そしてJavaでコネクションを200個開いていくプログラムを作成し、
;;; 実行しましたところ、103個目から200個目まで
;;; The connection attempt failed because Exception: -
;;;   java.net.SocketException: Too many open files in system
;;; と表示されました。
;;; 
;;; しかしsyslogには
;;; Feb  1 22:27:44 hoge kernel: VFS: file-max limit 500 reached
;;; と出ていましたが、recovery modeのログはありませんでした。
;;; 
;;; 現象が発生した付近のログに出ていたメッセージからソースを
;;; 調べ再現を試みていたら、コネクションを多数開いている最中に
;;; backendにSIGQUITシグナルを送るとrecovery modeのログが出るこ
;;; とがわかりました。
;;; 
;;; 十数回やってみましたが、recovery modeのログは出ましたが、
;;; 再現はしませんでした。
;;; 
;;; どうも単純に強制的な再起動だけでは再現しないようです。

  PostgreSQL 7.2.3 で再起動で、UTC に戻ってしまうというのは、他にも聞いていま
す。その場合には、オープンファイルを使い切っていたので、使い切らないようにする
ことで回避をしました。その処置をする前は、何度か発生していたのが、処置の後は、
1 ヶ月以上発生していません。

  先の実例から、オープンファイルを使い切ることと何かが関連して、再起動が起きる
と UTC に戻る場合があるのではないかと予想し、再現しようとしたのですが、できて
いません。ファイルがオープンできなくなると、再起動はされないのですが、チェック
ポイントプロセスで UTC になることがあり、CREATE TABLE すると ERROR: cannot
create class2: File exists というメッセージが表示されることがありました。
7.3.1 では試していません。

  再現できると、追求しやすいのですが。


Kenji Sugita                                      




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