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

bxcel bxcel @ prophet.jp
2003年 2月 2日 (日) 00:47:33 JST


松本です。

> ;;; > > 環境は、RedHat Linux7.2 + postgres 7.2.1です。
> ;;; >
> ;;; > 7.3.1では再現しませんね.環境は Vine Linux 2.6です.
> ;;; > --
> ;;; > Tatsuo Ishii
> ;;;
> ;;; 情報ありがとうございます。
> ;;;
> ;;; こちらでも再現テストを実施したいのですが、どのような方法
> ;;; で再現させれば良いのか簡単にで結構ですので教えて頂けます
> ;;; でしょうか?
>
>   OS のオープンファイル数の上限を下げておいて、PostgreSQL のサーバへ接続を
> いく
> つかしたときに、ファイルをオープンできなくなるようにして落すのが手軽です。
>
>
> Kenji Sugita

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のログは出ましたが、
再現はしませんでした。

どうも単純に強制的な再起動だけでは再現しないようです。

松本




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