[pgpool-general-jp: 1056] pgpoolの無応答(無限ループ?)について

丸吉 祐也 maruyoshi @ designet.co.jp
2012年 5月 7日 (月) 17:53:18 JST


はじめまして。
丸吉と申します。

pgpool-II 3.0.5を利用しており、2回ほどpgpoolが無応答になる
現象が発生しました。


●環境(ざっくりで申し訳ございませんが)
Red Hat Enterprise Linux Server release 5.7 (Tikanga)
PostgreSQL 9.0.6
2台でレプリケーション


実際の環境は、私が直接触ることができず、そして現象が発生した時は
復旧優先のため、pgpoolを取り急ぎ再起動しています。

ただし、1つだけ停止できないプロセスがあり、
psの結果(?)かどうか定かではありませんが、「pgpool: accept」の
プロセスが残っていて、最終的に kill -9 で強制終了しました。

3.0.6のアナウンスで無限ループの問題が修正されておりますが、
現象が発生したときにはpostgresql.confを再読み込みはしておりません。
---------------------------------------------------------------------------
* バグ修正
---------------------------------------------------------------------------

- 以下のスレッドで報告されている無限ループを修正しました。
  http://www.pgpool.net/pipermail/pgpool-general/2011-December/000099.html

  プライマリからから受け取ったバッファが空である一方で、スタンバイのどれか
  が受け取ったバッファが空でないとき、pgpool へのパケットが送られてしまう、
  という可能性が考慮されていませんでした。
  この事象は例えば、postgresql.conf を再読み込みしたときに発生することがあ
  りました。
  この修正では、スタンバイからしか受け取れなかったバッファは無視するように
  しました。(Tatsuo Ishii)

===========================================================================

再読み込み以外にはどのようなパターンで起こりえるのか、教えていただきたいです。
(プライマリからから受け取ったバッファが空である一方で、スタンバイのどれか
  が受け取ったバッファが空でないとき、というのがどのような時に発生するのか…)


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





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