[pgsql-jp: 34008] Re: pgpoolのmaster データベース停止時の動作について( pgpool-2.0.9)

Tatsuo Ishii t-ishii @ sra.co.jp
2004年 9月 20日 (月) 09:13:15 JST


石井です.

> 早速のご対応ありがとうございます。
> 
> まず、pgpool-2.1をインストールして再現手順を試してみましたが、
> pgpool-2.0.9と同様の問題が発生しました。
> 
> 次にご提供いただきましたパッチをpgpool-2.1に適用して試してみましたが、
> 今度は無反応になるケースは回避されました。

はい.ここまでは予想通りですね.

> pgpoolをデバッグモードで起動した際に表示されたメッセージを見ていますと、
> psqlで接続して数秒すると、次のようなメッセージが表示されていました。

はい,replication_timeoutでタイムアウトします.デフォルトでは5秒です.

> ----------------------------------------------------------------------
> ERROR: pid 7259: pool_check_fd: data is not ready tp->tv_sec 0 tp->tp_usec 0
> ERROR: pid 7259: pool_process_query: secondary data is not ready at syncronous point. abort this session
> ERROR: pid 7259: pool_process_query: kind does not match between backends master(E) secondary(LOG: pid 7259: do_child: exits with status 1 due to error
> DEBUG: pid 7227: child 7259 exits with signal 0
> DEBUG: pid 7315: I am 7315
> ----------------------------------------------------------------------
> 動作には一応問題ないようですが、一部のデバッグメッセージが
> 崩れてしまっているようです。

あ,そうですか.こちらの環境(Vine Linux 2.6r4)では,

ERROR: pid 23180: pool_process_query: kind does not match between backends master(N) secondary()
LOG: pid 23180: do_child: exits with status 1 due to error

となり,特に問題ないようです.もしかしたらglibcのバージョンの違いによ
るものかもしれませんね(こちらはglibc-2.2.4).エラーメッセージの出力に
はvfprintfを使っており,該当個所は,

pool_process_query: kind does not match between backends master(%c)secondary(%c)",

のようになっていて,2番目の%cに\0が渡されているケースですが,もしかし
て Red Hat Enterprise Linux 3.0 ES のvfprintfはフォーマットの"%c"に\0
を渡すと不都合が起きるのでしょうか?
--
Tatsuo Ishii



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