[pgsql-jp: 40189] Re: update文のフリーズ

Eiichiro Sakai sakai @ agate-japan.com
2010年 2月 17日 (水) 19:41:10 JST


fujii様

お世話になります。
酒井です。

> おそらく pgpool は "bind" と "execute" を別々のメッセージとして PostgreSQL
>> 送信しているはずです。pgpool のソースを斜め読みした限りだと、"bind" 処理の
> 完了を
> 示すメッセージが PostgreSQL が返ってくるまで pgpool は "execute" のメッセ
> ージを
> PostgreSQL に送信しません。やはり "execute" のメッセージが PostgreSQL に届
> いて
> いない可能性も考えられます。

なるほど。
そうするとpgpoolからメッセージが送られなかった可能性があるということですね。

> もし pgpool をデバッグモード (-d オプション付) で起動していれば、どのメッ
セ
> ージを
> pgpool が送信したかログに出力されます。そのログから、"execute" メッセージ
が
> PostgreSQL に送信されたかご確認ください。

残念ながらデバッグモードでは起動していませんでした。
そのためpgpool側は特に何も出力されていませんでした。
これ以上追及するのは難しそうですね・・。


以上よろしくお願いします。


> -----Original Message-----
> From: Fujii Masao [mailto:masao.fujii @ gmail.com]
> Sent: Wednesday, February 17, 2010 5:57 PM
> To: Eiichiro Sakai
> Cc: PostgreSQL Japanese Mailing List
> Subject: Re: [pgsql-jp: 40175] Re: update文のフリーズ
>
> 2010/2/17 Eiichiro Sakai <sakai @ agate-japan.com>:
> >> ちなみに、ps aux の結果からもロック待ちが発生していたか確認できるのです
> > が、
> >> 事象発生時の ps の結果はお持ちでしょうか? ロック待ちのプロセスは、ps で
>> >> "SELECT waiting" や "UPDATE waiting" と表示されます。
> >
> > すいません、psの結果は残っておりませんでした・・。
>
> となると、UPDATE 文がフリーズした原因を特定するのは難しいかもしれません。
>
> >> ログを見るとSQL文を実行される際、最後のupdate文で「parse」「bind」が出
> 力され
> >> ていて、
> >> 「execute」が出力されていない状況です。
> >> 「bind」と「execute」の間はpostgres内部の処理と認識していたので、
> >> SQLの実行メッセージは届いていると認識しておりました。
>
> おそらく pgpool は "bind" と "execute" を別々のメッセージとして PostgreSQL
>> 送信しているはずです。pgpool のソースを斜め読みした限りだと、"bind" 処理の
> 完了を
> 示すメッセージが PostgreSQL が返ってくるまで pgpool は "execute" のメッセ
> ージを
> PostgreSQL に送信しません。やはり "execute" のメッセージが PostgreSQL に届
> いて
> いない可能性も考えられます。
>
> もし pgpool をデバッグモード (-d オプション付) で起動していれば、どのメッ
セ
> ージを
> pgpool が送信したかログに出力されます。そのログから、"execute" メッセージ
が
> PostgreSQL に送信されたかご確認ください。
>
> --
> Fujii Masao
> NIPPON TELEGRAPH AND TELEPHONE CORPORATION
> NTT Open Source Software Center



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