[pgpool-general-jp: 1377] pgpool-II 3.4.3, 3.3.7 3.2.12, 3.1.15, and 3.0, 19 released
Yugo Nagata
nagata @ sraoss.co.jp
2015年 7月 24日 (金) 17:14:37 JST
長田です。
pgpool-II 3.4.3, 3.3.7, 3.2.12, 3.1.15, 3.0,19 をリリースしましたので
お知らせいたします。
以下からダウンロードすることができます。
http://pgpool.net/mediawiki/index.php/Downloads
=================================================================================
リリースノート
=================================================================================
3.4.3 (tataraboshi) 2015/07/24
* 概要
このバージョンは 3.4.2 に対するバグ修正リリースです。
__________________________________________________________________
* バグ修正
- pgpool-recovery の "cannot find xlog functions" エラーを修正
しました。(Muhammad Usama)
PostgreSQL 9.4 より、PostgreSQL の pg_xlogfile_name() 関数の引数型は
text からpg_lsn に変更されていますが、pgpool-recovery は依然として
古いシグネチャで関数を配置しようとしていました。
- メモリキャッシュ無効化の問題を修正しました。(Muhammad Usama)
テーブルのOIDを保持する内部バッファは、子プロセスの中でずっと使われる
ため、長寿命のメモリコンテキストに確保される必要がありました。
詳しくは [pgpool-general: 3643] を参照してください。
- failover コマンドのパラメータに対して pgpool-II が値を持たない場合は、
空文字列を渡すようにしました。(Muhanmmad Usama)
あるパラメータに対して pgpool-II が値を持たない場合には、その値を取り
除くのではなく、空の文字列を failover コマンドに渡すようになりました。
これにより、failover スクリプトが常に期待した個数のパラメータを受け取る
ようになります。
- pgpool-II が独自に定義した snprintf 関数を使うのは、それが OS によって
提供されていない場合のみとなりました。(Muhammad Usama)
- 共有メモリがどのくらい割り当てられているのかを表示するデバッグ情報が
追加されました。(Tatsuo Ishii)
- バックエンド接続がメインプロセスに EOF を返した時のエラーレベルを引き
下げました。(Muhammad Usama)
バックエンドから EOF が返されたときに pgpool メインプロセスで FATAL
エラーを投げるのはやりすぎで、望ましくない振る舞いの原因となっていま
した。このエラーレベルは ERROR に引き下げられました。
- doc: ロードバランスが行われる条件をより明確にしました。(Tatsuo Ishii)
- doc: pcp_promote_node の記述をより明確にしました。(Tatsuo Ishii)
このコマンド PostgreSQL スタンバイを実際に昇格させるわけではありません。
- doc: JDBC ドライバ使用時のロードバランス条件について制限事項の内容が
古かったので修正しました。(Tatsuo Ishii)
autocommit が false であっても、ある条件下ではロードバランスが可能です。
- あるログの出力コードが到達不能になっていた不具合と、ログメッセージ
の内容を修正しました。(Muhammad Usama)
- フロントエンドのクライアントにメッセージを送る際の elog.c の問題を
修正しました。(Muhammad Usama)
フロントエンドクライアントにメッセージを送っている間に発生したエラー
は、無限ループを引き起こし、ERRORDATA_STACK_SIZE 超過エラーのために
子プロセスが異常終了する可能性がありました。
send_message_to_frontend() 関数の深さをチェックし、それが2を越えた
場合には処理を中断することにより、この問題は修正されました。
- "select() system call interrupted" エラーが修正されました。
(Tatsuo Ishii)
ヘルスチェックの過程でこのエラーに続いて以下のエラーが出力されていました。
ERROR: failed to make persistent db connection
DETAIL: connection to host:"x.x.x.x:5432 failed
しかし、ヘルスチェックはファイルオーバも再試行も実行しないので、これらの
メッセージに煩わされる以外には問題はありませんでした。これは 1)
num_init_children が大きく、2) pgpool の子プロセスが idle 状態にある
(child_life_time 秒の間、クライアントからクエリが来ていない)場合に
容易に発生していました。
もとのバグ報告は[pgpool-general: 3756] Connection Interrupted で行われ、
パッチは Tatsuo Ishii により作成され、Usama により改善されました。
- ユーザテーブルにスペースが含まれる場合の問題を修正しました。(Tatsuo Ishii)
例えばテーブル名にスペースが含まれる場合、pgpool-II のシステムカタログに
アクセスする内部関数でこれを正しく扱うことができず、SQL エラーとなっていました。
この問題は、常に識別子に区切り文字を付与することで解決しました。
bug #136 の報告によります。
http://www.pgpool.net/mantisbt/view.php?id=136
詳しくは [pgpool-general: 3818] も参照してください。
- インメモリクエリキャッシュが 4GB より大きなメモリサイズを使えるように
修正しました。(Tatsuo Ishii)
これはインメモリクエリキャッシュ機能が完成した時点で可能にしておくべき
でした。
- 拡張問い合わせクエリで、レプリケーションモード以外の場合には、insert
lock をチェックするクエリを送信しないようになりました。(Tatsuo Ishii)
- pgpool_status が変更されたときに、これをディスクに保存するようになりました。
(Tatsuo Ishii)
以前は pgpool-II が明示的に終了するときに pgpool_status を保存していました。
これは多くの場合は問題なく、CPU サイクルの節約になっていましたが、pgpool-II
が異常終了したり、OOM キラーによって強制的に終了させられた場合には、次回の
再起動時に古いステータスファイルを読む可能性がありました。
===============================================================================
3.3.7 (tokakiboshi) 2015/07/24
* 概要
このバージョンは 3.3.6 に対するバグ修正リリースです。
__________________________________________________________________
* バグ修正
- pgpool-recovery の "cannot find xlog functions" エラーを修正
しました。(Muhammad Usama)
PostgreSQL 9.4 より、PostgreSQL の pg_xlogfile_name() 関数の引数型は
text からpg_lsn に変更されていますが、pgpool-recovery は依然として
古いシグネチャで関数を配置しようとしていました。
- failover コマンドのパラメータに対して pgpool-II が値を持たない場合は、
空文字列を渡すようにしました。(Muhanmmad Usama)
あるパラメータに対して pgpool-II が値を持たない場合には、その値を取り
除くのではなく、空の文字列を failover コマンドに渡すようになりました。
これにより、failover スクリプトが常に期待した個数のパラメータを受け取る
ようになります。
- doc: ロードバランスが行われる条件をより明確にしました。(Tatsuo Ishii)
- doc: pcp_promote_node の記述をより明確にしました。(Tatsuo Ishii)
このコマンド PostgreSQL スタンバイを実際に昇格させるわけではありません。
- doc: JDBC ドライバ使用時のロードバランス条件について制限事項の内容が
古かったので修正しました。(Tatsuo Ishii)
autocommit が false であっても、ある条件下ではロードバランスが可能です。
- "select() system call interrupted" エラーが修正されました。
(Tatsuo Ishii)
ヘルスチェックの過程でこのエラーに続いて以下のエラーが出力されていました。
ERROR: failed to make persistent db connection
DETAIL: connection to host:"x.x.x.x:5432 failed
しかし、ヘルスチェックはファイルオーバも再試行も実行しないので、これらの
メッセージに煩わされる以外には問題はありませんでした。これは 1)
num_init_children が大きく、2) pgpool の子プロセスが idle 状態にある
(child_life_time 秒の間、クライアントからクエリが来ていない)場合に
容易に発生していました。
もとのバグ報告は[pgpool-general: 3756] Connection Interrupted で行われ、
パッチは Tatsuo Ishii により作成され、Usama により改善されました。
- ユーザテーブルにスペースが含まれる場合の問題を修正しました。(Tatsuo Ishii)
例えばテーブル名にスペースが含まれる場合、pgpool-II のシステムカタログに
アクセスする内部関数でこれを正しく扱うことができず、SQL エラーとなっていました。
この問題は、常に識別子に区切り文字を付与することで解決しました。
bug #136 の報告によります。
http://www.pgpool.net/mantisbt/view.php?id=136
詳しくは [pgpool-general: 3818] も参照してください。
- インメモリクエリキャッシュが 4GB より大きなメモリサイズを使えるように
修正しました。(Tatsuo Ishii)
これはインメモリクエリキャッシュ機能が完成した時点で可能にしておくべき
でした。
- 拡張問い合わせクエリで、レプリケーションモード以外の場合には、insert
lock をチェックするクエリを送信しないようになりました。(Tatsuo Ishii)
===============================================================================
3.2.12 (namameboshi) 2015/07/24
* 概要
このバージョンは 3.2.11 に対するバグ修正リリースです。
__________________________________________________________________
* バグ修正
- pgpool-recovery の "cannot find xlog functions" エラーを修正
しました。(Muhammad Usama)
PostgreSQL 9.4 より、PostgreSQL の pg_xlogfile_name() 関数の引数型は
text からpg_lsn に変更されていますが、pgpool-recovery は依然として
古いシグネチャで関数を配置しようとしていました。
- failover コマンドのパラメータに対して pgpool-II が値を持たない場合は、
空文字列を渡すようにしました。(Muhanmmad Usama)
あるパラメータに対して pgpool-II が値を持たない場合には、その値を取り
除くのではなく、空の文字列を failover コマンドに渡すようになりました。
これにより、failover スクリプトが常に期待した個数のパラメータを受け取る
ようになります。
- doc: JDBC ドライバ使用時のロードバランス条件について制限事項の内容が
古かったので修正しました。(Tatsuo Ishii)
autocommit が false であっても、ある条件下ではロードバランスが可能です。
- インメモリクエリキャッシュが 4GB より大きなメモリサイズを使えるように
修正しました。(Tatsuo Ishii)
これはインメモリクエリキャッシュ機能が完成した時点で可能にしておくべき
でした。
- 拡張問い合わせクエリで、レプリケーションモード以外の場合には、insert
lock をチェックするクエリを送信しないようになりました。(Tatsuo Ishii)
===============================================================================
3.1.15 (hatsuiboshi) 2015/07/24
* 概要
このバージョンは 3.1.14 に対するバグ修正リリースです。
__________________________________________________________________
* バグ修正
- pgpool-recovery の "cannot find xlog functions" エラーを修正
しました。(Muhammad Usama)
PostgreSQL 9.4 より、PostgreSQL の pg_xlogfile_name() 関数の引数型は
text からpg_lsn に変更されていますが、pgpool-recovery は依然として
古いシグネチャで関数を配置しようとしていました。
- 拡張問い合わせクエリで、レプリケーションモード以外の場合には、insert
lock をチェックするクエリを送信しないようになりました。(Tatsuo Ishii)
===============================================================================
3.0.19 (umiyameboshi) 2015/07/24
* 概要
このバージョンは 3.0.18 に対するバグ修正リリースです。
__________________________________________________________________
* バグ修正
- pgpool-recovery の "cannot find xlog functions" エラーを修正
しました。(Muhammad Usama)
PostgreSQL 9.4 より、PostgreSQL の pg_xlogfile_name() 関数の引数型は
text からpg_lsn に変更されていますが、pgpool-recovery は依然として
古いシグネチャで関数を配置しようとしていました。
- 拡張問い合わせクエリで、レプリケーションモード以外の場合には、insert
lock をチェックするクエリを送信しないようになりました。(Tatsuo Ishii)
===============================================================================
--
Yugo Nagata <nagata @ sraoss.co.jp>
pgpool-general-jp メーリングリストの案内