[pgpool-general-jp: 768] pgpool-II 2.3.3 released

Nozomi Anzai anzai @ sraoss.co.jp
2010年 4月 23日 (金) 17:00:52 JST


安齋です。

pgpool-II 2.3.3 をリリースしましたのでお知らせいたします。
このバージョンでは、2.3.2.2 以前の色々なバグが修正されています。

ソースコードは以下からダウンロードできます。
http://pgfoundry.org/frs/download.php/2664/pgpool-II-2.3.3.tar.gz


* 互換性のない変更

- このバージョンから、pgpool が以前より多くの共有メモリを使うように
  なったので注意してください。これによる問題が pgpool の起動時に発生し
  た場合は、pgpool のログを見てください。 "could not create shared
  memory segment: Cannot allocate memory" といったメッセージがあれば、
  システムの共有メモリを増やしてください。

- パラレルモードが、レプリケーションモードかロードバランスモードが有効
  でないと使えないようになりました。 pgpool-II ではずっと、レプリケー
  ションモードかロードバランスモードが有効でないときパラレルモードは正
  しく動作していませんでした。(Kitagawa)

- insert_lock のデフォルト値を false に変更しました。これは、マスタ・
  スレーブモードでは true にしても無意味なためです。 Fujii Masao さん
  の指摘により修正しました。(Tatsuo)


* 新しく追加したドキュメント

- README.online-recovery を追加しました。このドキュメントには、オンラ
  インリカバリの内部的なことが書いてあります。


* バグ修正

- 子プロセスが segfault を起こす pgpool-II 1.0 から長い間存在したバグ
  を修正しました。これは、親プロセスが shmem サイズの計算を間違えてい
  たことに起因します。バグ解析(Kitagawa)、パッチ作成(Tatsuo)

- ドキュメントにパラレルモード用の以下の制約を追記しました。(Kitagawa) 
  - NATURAL JOIN は使えません。
  - USING 句が、クエリ書き換え処理によって ON 句に変換されます。

- パラレルモードのとき、USING 句を含む JOIN 構文の書き換えで発生する可
  能性があったクラッシュを修正しました。(Kitagawa) この修正により、以
  下のような JOIN 構文が使えるようになります。
  例:
  - SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid);
  - SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid) JOIN d USING
    (did)

- パラレルクエリで、分散キー列の前に current_time を含む INSERT 文の
  パースができるように修正しました。

- SimpleForwardToBackend() を修正しました。これにより、拡張プロトコル
  を使ったクライアントが bind エラーのようなエラーを発生させたときに、
  pgpool がバックエンドの応答を待ち続けなくなります。このバグは、マス
  タ・スレーブモード、raw モード、コネクションプールモードで発生して
  いました。これを修正したことによって、コマンドがエラーになったあと、
  エラーを回復させるために SYNC メッセージを送るようになります。
  (Kitagawa)

- select() を実行中の pgpool 子プロセスが、SIGINT/SIGQUIT シグナルを
  無視するように修正しました。シグナルが送られても pgpool は select()
  を再実行しようとするので、結果的にシグナルが無視されます。(Tatsuo)

- connect_inet_domain_socket_by_port/connect_unix_domain_socket_by_port
  が SIGTERM/SIGINT/SIGQUIT シグナルを受け取っていないかチェックするよ
  うに修正しました。 Daniel Codina さんからのバグ報告に基づきます。
  (Tatsuo)

- "kind mismatch" というエラーメッセージを生成する際にクラッシュする可
  能性があったので、これを修正しました。以前は問題なかったのですが、
  2.3.2 でエンバグしました。(Tatsuo)

- ヘルスチェックにおけるバグを修正しました。コードが抜けたなどでLネッ
  トワーク障害が発生したときに、connect() を呼んでいる間はヘルスチェッ
  クが行なわれていませんでした。これは、connect() が ALARM シグナルに
  よって割り込まれた際に、 connect_unix_domain_socket()/
  connect_inet_domain_socket() が再試行していたためです。この修正で
  は、上記の関数に対して再試行をコントロールするような引数を追加してい
  ます。これは、Daniel Codina さんのバグ報告と分析に基づく修正です。
  (Tatsuo)

- 2.3.2.2 で、SimpleForwardToBackend でのタイムスタンプの書き換えにお
  いてエンバグしていたので、これを修正しました。これは、バグトラック
  #1010771 にある Peter Pramberge さんらの報告に基づきます。 (Tatsuo)

- パラレルクエリにおける "*" の書き換えを修正しました。sho さんから提
  供いただいたパッチを取り込みました。(Kitagawa)

- connect_inet_domain_socket_by_port() でエラーメッセージを出力する際
  に、strerror() ではなく hstrerror() を使うように修正しました。(Tatsuo)

-- 
Nozomi Anzai
SRA OSS, Inc. Japan


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