[pgpool-general-jp: 634] Re: 今後のリリース予定および2.1での不具合について

Tatsuo Ishii ishii @ sraoss.co.jp
2009年 11月 16日 (月) 13:51:39 JST


石井です。

> 現在 pgpool 2.1を使用させて頂いております。先日から2.2.5へのアップデートを準備して
> いるのですが、近いうちに2.2.6などがリリースされるようでしたら、もうしばらく待とうと
> 思っております。2.2.5の既存の不具合や2.2.6についての情報があれば教えてください。
> 
> 
> また、2.1から2.2.5に変更しようと考えたきっかけは、下記のパターンでDBが片方しか更新
> されないトラブルが発生したためです。おそらく2.2〜2.2.2で修正された下記の内容だろうと
> 思っておりますが、もし違うケースであれば、またご検討ください。

以下の問題に関しては最新のpgpool-IIで直っていると思います。お試し下さ
い。2.2.6は今月中にリリース予定です。
--
Tatsuo Ishii
SRA OSS, Inc. Japan

> ---
> 2.2.2
> フロントエンドにpgpoolがデータを送信する際のエラーを無視するようにしました。これに
> よって、バックエンドとの間で必要な処理が中断されないようになり、バックエンドの間で
> データの一貫性がなくなる問題が回避されるようになりました(Tatsuo)。 
> -----
> 2.2
> クエリのキャンセルが動くようになりました(Tatsuo) 
> -----
> 
> 
> ・トラブル発生について
> 
> 環境
> pgpool-II 2.1    postgreSQL 8.1系  CENTOS 4。
> DBは2台でレプリケーションモードでロードバランスを使用しています。
> 
> 
> 再現手順
> (ロックを利用しているのは、非常に長い時間のかかるSQLの再現が困難なためです。)
> 
> (1)term1 からpsql にて、pgpool経由で テーブルAにロック IN ACCESS EXCLUSIVE MODE
> (2)term2 から同様にして、テーブルAを selectなどで参照を試みます。(wait になります)
> (3)term2にてctr-cでキャンセルを試みます。応答がなくなります。うまくキャンセルできる
>    場合もありますが、beginしてからselect するとたいてい応答しません。
> (4)term2を強制終了します。
> (5)DBのstatement_timeout を待ちます。私の環境では30分以上です。
> 
> timeoutすると、DBの片方に「unexpected EOF on client connection」、もう片方に「canceling st
> atement due to statement timeout」が発生します。
> 前者のDBで、postgresql の接続プロセスが1つ減ります。後者は残ったままです。
> 
> この状態でpgpool-IIを使用すると、子プロセスの1つが片方のDBにしか接続していない状態と
> なります。先日のトラブルでは、30回に1回ほどデータが片方にしか書き込まれない状態と
> なり、徐々にデータがずれていきました。
> また、この際、show pool_statusでは、正常状態が返ってきていました。
> 
> この異常な子プロセスがDBに書いた際に、ERROR:  syntax error at or near "send" at
>  character 1 がDBに記録されていました。


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