2010年2月17日

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

2010/2/17 Eiichiro Sakai <sakai@xxxxx>:
>> ちなみに、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


投稿者 xml-rpc : 2010年2月17日 17:56
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/93407
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。