[pgpool-general-jp: 901] pgpool-II 3.0.3 リリース
Toshihiro Kitagawa
kitagawa @ sraoss.co.jp
2011年 2月 23日 (水) 23:55:00 JST
pgpool-II ユーザの皆様
pgpool-II 3.0.3をリリースしましたので、お知らせいたします。
このバージョンでは、3.0.1における様々なバグが修正されています。
pgpool-II 3.0.2のリリースはパッケージングの問題でキャンセルされました。
* 互換性のない変更
- ストリーミングレプリケーションモードを使用する場合に、PostgreSQL
サーバにC関数「pgpool-walrecrunning()」をインストールすることが推奨
されます(後述)。この場合、新しい変数「%P」がオンラインリカバリの
スクリプトで利用できるようになります。この関数をインストールしない
場合は、従来と同じ動作になります(Tatsuo)
- rawモードでDBノードがひとつだけの場合、DBノードに問題が発生すると
ダウン状態になりますが、DBノードが復旧したらpgpoolの再起動なしに
DBノードを使用できるようにしました。この変更は3.0に含まれていましたが、
動作していませんでした(Tatsuo, Kitagawa)
* バグ修正
- パスワード認証における移植性を損なうコードを修正しました。
これはFreeBSDユーザからのバグ報告に基づきます(Tatsuo)
- insert_lockがユーザテーブルの全行をロックするバグを修正しました
(Tatsuo, Kitagawa)
- ユーザ名の長さが32バイトのときにpgpool子プロセスがクラッシュする
パスワード認証のバグを修正しました(Tatsuo)
- rawモードまたはバックエンドノード数が1のときに、pgpool子プロセスが
クラッシュするmd5認証のバグを修正しました。パッチはRob Shepherdさん
から頂きました(Tatsuo)
- 以前からあった配列と複合型に対するタイムスタンプ書き換えのバグを
修正しました。パッチはAkio Ishidaさんから頂きました(Tatsuo)
- debug_levelパラメータが動作しないバグを修正しました。
パッチはGilles Daroldさんから頂きました(Tatsuo)
- フェイルオーバ中に起こりうるpgpool子プロセスのクラッシュを修正
しました(Kitagawa)
- ユーザがスキーマ名の付いた関数を呼んだときにwhite/black_function_listが
正しく動作するように修正しました(Tatsuo)
- コネクションキャッシュによってDROP DATABASEが失敗するバグを修正しました
(Kitagawa)
- rawモードでフェイルオーバが失敗するバグを修正しました(Kitagawa)
- 1セッションで簡易問い合わせプロトコルと拡張問い合わせプロトコルの両方が
使われたときに起こりうるpgpool子プロセスの終了を修正しました(Kitagawa)
- 拡張問い合わせプロトコルを使用中にエラーが発生すると起こりうるハング
アップを修正しました(Kitagawa)
- PG_TRY/CATCHを使用しないようにpgpool-regclass()を修正しました。
PG_TRY/CATCHは、時々バックエンドが"PANIC: ERRORDATA_STACK_SIZE exceeded."
というメッセージとともに終了するので安全でないように見えます(Tatsuo)
- JDBCドライバがマスタノードに何度もBEGINを発行するロードバランスのバグを
修正しました(Kitagawa)
- failback_commandとfail_over_on_backend_errorが正しい値を表示するように
pool_statusを修正しました(Kitagawa)
- pool_statusからrecovery_passwordとsystem_db_passwordを削除しました
(Kitagawa)
- 英語ドキュメントを書き直してレビューしました(Marc Cousin, Gleu)
- 以下の条件を満たすときSELECTクエリがマスタノードに送信されないバグを
修正しました(Kitagawa)
- マスタースレーブモードである
- 拡張問い合わせプロトコルを使用している
- 明示的にトランザクションを開始している
- 更新クエリを実行した後である
- ストリーミングレプリケーションモード利用時のオンラインリカバリにおいて、
以下のシナリオがうまく動作しない問題を修正しました。以下のシナリオでは、
ノード0を最初のプライマリサーバ、ノード1を最初のスタンバイサーバとします。
- ノード0プライマリサーバがダウンし、ノード1スタンバイサーバが新しい
プライマリサーバになる
- ノード0の旧プライマリサーバは、オンラインリカバリで新スタンバイサーバ
になる
- このときpgpool-IIは、ノード0の新スタンバイサーバを、プライマリサーバと
みなしてしまう
これは、生きているノード番号の一番若いサーバをプライマリサーバと見なして
いたためです。pgpool-II 3.0.3では、pgpool-walrecrunning()を使って、実際
にそのノードがプライマリサーバかどうか判定するため、このような問題は起き
ません。この機能をうまく使うために、オンラインリカバリのスクリプトで%P
(古いプライマリノード番号)が利用できるようになっています。なお、
pgpool-walrecrunning()がインストールされていない場合は、上の問題は解消
されず、3.0.1と同様の動作になります。
* 改良
- ステータスファイルを読んでいるときに、特定のバックエンドがダウン状態
ならばログを出力するようにしました(Tatsuo)
ソースコードは以下からダウンロードできます。
http://pgfoundry.org/frs/download.php/2958/pgpool-II-3.0.3.tar.gz
pgpool-general-jp メーリングリストの案内