pgpool2.git / summary / log / commit / refs

commit    170323082dfe61aca1593008fb19fa4f825bebe2
Author:   Yugo Nagata <nagata@sraoss.co.jp>
Date:     Wed Jul 10 04:55:21 2013 +0000

    Add release notes of minor version up


NEWS | 334 +++++++++++++++++++++++++++++++++++++++++- doc/pgpool-ja.html | 415 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 748 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index e04dbbb8d..9198e15aa 100644 --- a/NEWS +++ b/NEWS @@ -281,8 +281,164 @@ - Chinese manual is updated to the latest especially about watchdog. (Bambo Huang) + - Add mention about "-D" option to the man page. (Tatsuo Ishii) + =============================================================================== 3.2 Series (2012/08/03 - ) +=============================================================================== + + 3.2.5 (namameboshi) 2013/07/10 + +* Version 3.2.5 + + This is a bugfix release against pgpool-II 3.2.4. + + __________________________________________________________________ + +* Bug fixes + + - Add mention about "-D" option to the man page. (Tatsuo Ishii) + + - Consider timeout waiting for compeletion of failback request in on line + recovery (Tatsuo Ishii) + + This will prevent the situation that recovery operation continues forever + and we cannot even shutdown pgpool-II main process. This could happen + especially while executing follow master command. + + - Fix a bug that %H of follow_master_command is not assigned correctly the + new primary node in stream replication mode + (Tatsuo Ishii) + + - Fix wd_create_send_socket() to not execute select() before connect() + (Yugo Nagata) + + How select() works on an unconnected socket is undefined, and differs + between platform. On Linux, this returns 2 and it is eventually harmless. + However, on Soraris, this returns 0 and it is indistinguishable from time + timeout, so watchdog wouldn't work correctly. + + - Fix error when pgpool_regclass is not installed (Tatsuo Ishii) + + The query used in pool_has_pgpool_regclass() fails if pgpool_regclass + does not exist. The bug was introduced in 3.2.4. See [pgpool-general: + 1722] for more details. + + [pgpool-general: 1722] [PgPool-II 3.2.4] pgpool_regclass now mandatory? + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001749.html + + - Fix do_query() to not hang when PostgreSQL returns an error + (Tatsuo Ishii) + + The typical symptom is "I see SELECT is keep on running according to + pg_stat_activity". To fix this pgpool-II just exits the process and + kill the existig connection. This is not gentle but at this point I + believe this is the best solution. + + - Fix possible deadlock during failover with watchdog enabled + (Yugo Nagata) + + This is reported in Bug track #54 by arshu arora + + #54 pgpool-II semaphore lock problem + http://www.pgpool.net/mantisbt/view.php?id=54 + + - Fix bug with do_query which causes hung in extended protocol + (Tatsuo Ishii) + + This problem could occur when insert lock is enabled and + pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more + details. + + [pgpool-general: 1684] insert_lock hangs + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html + + - Fix unnecessary degeneration caused by error on commit (Tatsuo Ishii) + + In master slave mode, if master gets an error at commit, while other + slaves are normal at commit, we don't need to degenrate any backend + because it is likely that the "kind mismatch error" was caused by a + deferred trigger. + + - Fix possible failure of query cache invalidation for DML in transaction + (Tatsuo Ishii) + + CREATE TABLE t1(i INTEGER); + CREATE TABLE t2(i INTEGER); + SELECT * FROM t1; + BEGIN; + DELETE FROM t2 WHERE i = 0; + INSERT INTO t1(i) VALUES(1); + COMMIT; + + SELECT * FROM t1; + + At commit pgpool tries to delete cache for t2 but failes because + there's no oid table entry for t2. Problem is, it fails to check oid + table for t1. So cahce for t1 remains and the last SELECT incorrectly + returns cached data. Fix is, continuing to check oid table entries. + + This is reported in Bug track #58 by wms + + #58 query cache invalidation does not fire for multiple DML in transaction + http://www.pgpool.net/mantisbt/view.php?id=58 + + - Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii) + + This is necessary to deal with clients which restricts schema search path + to pg_catalog only. Postgres_fdw is such a client. + + - Fix a potential crash in pg_md5 command (Muhammad Usama) + + - Fix a segmentation fault that occurs when on memory query cache enabled + and the query is issued in extended query mode and the result is too large + (Tatsuo Ishii) + + This is reported in Bug track #63 by harukat. + Analysis and a test case are also provided. + + #63 Child process was terminated by segmentation fault with memcached + http://www.pgpool.net/mantisbt/view.php?id=63 + + - Fix a segmentation fault of a child process that occurs when a startup + packet has no PostgreSQL user information (Yugo Nagata) + + You can reproduce it by + + $ psql -p 9999 -U '' + + If enable_pool_hba is on, a child process terminates by segmentation + fault. Otherwise if enable_pool_hba is off, the error message is + + ERROR: pool_discard_cp: cannot get connection pool for user (null) + database (null) + + In both cases, psql terminates with no message on frontend. + + In the fixed version, if PostgreSQL user is not specified in startup packet, + the message as following is output to both log and frontend. This is + the same behavior as PostgreSQL. + + FATAL: no PostgreSQL user name specified in startup packet + + - Fix memory allocation logic in extended query processing with on-memory + query cache enabled (Tatsuo Ishii) + + When very long query string (> 1024 bytes) supplied in extended query + with bind parameters, it fails to allocate enough memory. + + - Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section + (Yugo Nagata) + + - Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document + (Yugo Nagata) + + - Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata) + + When an invalid number is used, null value is passed as an arguments + of recovery script, and this causes a malfunction. In especially, + rsync may delete unrelated files in basebackup scripts. + =============================================================================== 3.2.4 (namameboshi) 2013/04/26 @@ -1395,6 +1551,96 @@ =============================================================================== 3.1 Series (2011/09/08 - ) +=============================================================================== + + 3.1.8 (hatsuiboshi) 2013/07/10 + +* Version 3.1.8 + + This is a bugfix release against pgpool-II 3.1.7. + + __________________________________________________________________ + +* Bug fixes + + - Add mention about "-D" option to the man page. (Tatsuo Ishii) + + - Consider timeout waiting for compeletion of failback request in on line + recovery (Tatsuo Ishii) + + This will prevent the situation that recovery operation continues forever + and we cannot even shutdown pgpool-II main process. This could happen + especially while executing follow master command. + + - Fix a bug that %H of follow_master_command is not assigned correctly the + new primary node in stream replication mode + (Tatsuo Ishii) + + - Fix do_query() to not hang when PostgreSQL returns an error + (Tatsuo Ishii) + + The typical symptom is "I see SELECT is keep on running according to + pg_stat_activity". To fix this pgpool-II just exits the process and + kill the existig connection. This is not gentle but at this point I + believe this is the best solution. + + - Fix bug with do_query which causes hung in extended protocol + (Tatsuo Ishii) + + This problem could occur when insert lock is enabled and + pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more + details. + + [pgpool-general: 1684] insert_lock hangs + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html + + - Fix unnecessary degeneration caused by error on commit (Tatsuo Ishii) + + In master slave mode, if master gets an error at commit, while other + slaves are normal at commit, we don't need to degenrate any backend + because it is likely that the "kind mismatch error" was caused by a + deferred trigger. + + - Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii) + + This is necessary to deal with clients which restricts schema search path + to pg_catalog only. Postgres_fdw is such a client. + + - Fix a potential crash in pg_md5 command (Muhammad Usama) + + - Fix a segmentation fault of a child process that occurs when a startup + packet has no PostgreSQL user information (Yugo Nagata) + + You can reproduce it by + + $ psql -p 9999 -U '' + + If enable_pool_hba is on, a child process terminates by segmentation + fault. Otherwise if enable_pool_hba is off, the error message is + + ERROR: pool_discard_cp: cannot get connection pool for user (null) + database (null) + + In both cases, psql terminates with no message on frontend. + + In the fixed version, if PostgreSQL user is not specified in startup packet, + the message as following is output to both log and frontend. This is + the same behavior as PostgreSQL. + + FATAL: no PostgreSQL user name specified in startup packet + + - Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section + (Yugo Nagata) + + - Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document + (Yugo Nagata) + + - Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata) + + When an invalid number is used, null value is passed as an arguments + of recovery script, and this causes a malfunction. In especially, + rsync may delete unrelated files in basebackup scripts. + =============================================================================== 3.1.7 (hatsuiboshi) 2013/04/26 @@ -1484,7 +1730,6 @@ 3.1.6 (hatsuiboshi) 2013/02/08 - * Version 3.1.6 This is a bugfix release against pgpool-II 3.1.5 @@ -2166,6 +2411,93 @@ =============================================================================== 3.0 Series (2010/09/10 - ) +=============================================================================== + + 3.0.12 (umiyameboshi) 2013/07/10 + +* Version 3.0.12 + + This is a bugfix release against pgpool-II 3.0.11 + + __________________________________________________________________ + +* Bug fixes + + - Add mention about "-D" option to the man page. (Tatsuo Ishii) + + - Consider timeout waiting for compeletion of failback request in on line + recovery (Tatsuo Ishii) + + This will prevent the situation that recovery operation continues forever + and we cannot even shutdown pgpool-II main process. This could happen + especially while executing follow master command. + + - Fix do_query() to not hang when PostgreSQL returns an error + (Tatsuo Ishii) + + The typical symptom is "I see SELECT is keep on running according to + pg_stat_activity". To fix this pgpool-II just exits the process and + kill the existig connection. This is not gentle but at this point I + believe this is the best solution. + + - Fix bug with do_query which causes hung in extended protocol + (Tatsuo Ishii) + + This problem could occur when insert lock is enabled and + pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more + details. + + [pgpool-general: 1684] insert_lock hangs + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html + + - Fix unnecessary degeneration caused by error on commit (Tatsuo Ishii) + + In master slave mode, if master gets an error at commit, while other + slaves are normal at commit, we don't need to degenrate any backend + because it is likely that the "kind mismatch error" was caused by a + deferred trigger. + + - Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii) + + This is necessary to deal with clients which restricts schema search path + to pg_catalog only. Postgres_fdw is such a client. + + - Fix a potential crash in pg_md5 command (Muhammad Usama) + + - Fix a segmentation fault of a child process that occurs when a startup + packet has no PostgreSQL user information (Yugo Nagata) + + You can reproduce it by + + $ psql -p 9999 -U '' + + If enable_pool_hba is on, a child process terminates by segmentation + fault. Otherwise if enable_pool_hba is off, the error message is + + ERROR: pool_discard_cp: cannot get connection pool for user (null) + database (null) + + In both cases, psql terminates with no message on frontend. + + In the fixed version, if PostgreSQL user is not specified in startup packet, + the message as following is output to both log and frontend. This is + the same behavior as PostgreSQL. + + FATAL: no PostgreSQL user name specified in startup packet + + - Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section + (Yugo Nagata) + + - Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document + (Yugo Nagata) + + - Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata) + + When an invalid number is used, null value is passed as an arguments + of recovery script, and this causes a malfunction. In especially, + rsync may delete unrelated files in basebackup scripts. + + =============================================================================== 3.0.11 (umeyameboshi) 2013/04/26 diff --git a/doc/pgpool-ja.html b/doc/pgpool-ja.html index 1b3ad3cc8..599e2f218 100644 --- a/doc/pgpool-ja.html +++ b/doc/pgpool-ja.html @@ -6061,6 +6061,204 @@ pool_hba.conf.sample の SSL に関する記述を修正しました。(Tatsuo I </ul> +<h2><a name="release3.2.5"></a>3.2.5 (namameboshi) 2013/07/10</h2> +<h3>概要</h3> +<p> +このバージョンは 3.2.4 に対するバグ修正リリースです。 +</p> +<h3>バグ修正</h3> +<ul> +<li> +man ページに -D オプションの記述を追加しました。(Tatsuo Ishii) +</li> + +<li> +オンラインリカバリ時のフェイルバックの完了待機でタイムアウト処理をするようにしました。(Tatsuo Ishii) +<p> +これによりリカバリが永遠に終わらず pgpool-II が終了できなくなる状況を回避します。 +この現象は特に follow_master_command の実行中に起こり得ました。 +</p> +</li> + +<li> +ストリームレプリケーションモードでの follow_master_command 実行時に、%H に新しいプライマリノードが正しく割り当てられないバグを修正しました。 +(Tatsuo Ishii) +</li> + +<li> +watchdog ソケット作成時に、connect() の前に select() を実行していたのを修正しました。(Yugo Nagata) +<p> +未接続のソケットで select() を実行したときの処理は未定義で、プラットフォームで異なります。 +Linux では 2 を返し、結果としては無害です。 +しかし、Solarisでは 0 を返し、これはタイムアウトと区別がつかないため、 watchdog が正しく動いていませんでした。 +</p> +</li> + +<li> +pgpool_regclass がインストールされていない場合に生じるエラーを修正しました。 +(Tatsuo Ishii) +<p> +pgpool_rgcalss が存在しない場合に、pool_has_pgpool_regcalss() で使われているクエリが失敗していました。 +詳しくは、[pgpool-general:1722] を参照してください。 +</p> +<blockquote> + [pgpool-general: 1722] [PgPool-II 3.2.4] pgpool_regclass now mandatory? <br /> + <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001749.html"> + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001749.html + </a> +</blockquote> +</li> + +<li> +PostgreSQL がエラーを返したときに do_query() がハングしないよう修正しました。 +(Tatsuo Ishii) +<p> +典型的な症状が「pg_stat_activety によると SELECT が実行されたままのように見える」というものです。 +これを解決するため、pgpool-II は当該プロセスを終了させ、既存のコネクションを捨てるように修正しました。 +</p> +</li> + +<li> +watchdog を有効にしたときに、フェイルオーバの最中に起こりうるデッドロックを修正しました。(Yugo Nagata) +<p> +このバグは、バグトラッカ #54 にて arshu arora さんによって報告されました。 +</p> +<blockquote> + #54 pgpool-II semaphore lock problem<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=54"> + http://www.pgpool.net/mantisbt/view.php?id=54 +</a> +</blockquote> +</li> + +<li> +拡張プロトコルの際に do_query で発生しうるハングアップを修正しました。 +(Tatsuo Ishii) +<p> +これは insert_lock が有効で、pgpool_catalog.insert_lock が存在することに起こり得ます。 +詳しくは [pgpool-general: 1684] を参照してください。 +</p> +<blockquote> + [pgpool-general: 1684] insert_lock hangs <br /> + <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html"> + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html + </a> +</blockquote> +</li> + +<li> +COMMIT 時エラーに不要なバックエンド切り離しを行わないようにしました。 +(Tatsuo Ishii) +<p> +マスタースレーブモードで、COMMIT 時にマスターノードでエラーが発生していたとしても、他のスレーブノードが正常な場合にはバックエンドを切り離す必要はありません。 +これは、遅延トリガーのために "kind mismatch error" が発生しうるからです。 +</p> +</li> + +<li> +トランザクション内の DML で、クエリキャッシュの無効化が失敗する場合があるのを修正しました。(Tatsuo Ishii) +<pre> + CREATE TABLE t1(i INTEGER); + CREATE TABLE t2(i INTEGER); + SELECT * FROM t1; + BEGIN; + DELETE FROM t2 WHERE i = 0; + INSERT INTO t1(i) VALUES(1); + COMMIT; + + SELECT * FROM t1; +</pre> +<p> +上の SQL で、COMMIT 発行時に pgpool は t2 のキャッシュを削除しようとします +が、実際には t2 のOID テーブルエントリがないのでこれは失敗します。そのとき +に、t1 の OID テーブルの確認までも失敗とみなされ、直前の t1 の SELECT 結果 +のキャッシュが不正に残っていました。 +</p> +<p> +この問題はバグトラッカ #58 で wms さんにより報告されました。 +</p> +<blockquote> + #58 query cache invalidation does not fire for multiple DML in transaction<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=58"> + http://www.pgpool.net/mantisbt/view.php?id=58 +</a> +</blockquote> +</li> + +<li> +pgpool_regclass を pg_catalog スキーマに登録するよう修正しました。 +(Tatsuo Ishii) +<p> +これは postgres_fdw のような、スキーマ検索パスが pg_catalog に限定されているクライアントに対応するために必要です。 +</p> +</li> + +<li> +pg_md5 コマンドで起こりうるクラッシュを修正しました。(Muhammad Usama) +</li> + +<li> +オンメモリクエリキャッシュ有効時に発生するセグメンテーション違反が修正されました。(Tatsuo Ishii)) +<p> +これは、拡張クエリモードで実行されたクエリが長い結果を返すときに発生します。 +このバグはバグトラック #63 にて、harukat さんにより報告、解析され、テストケースが提供されました。 +</p> +<blockquote> + #63 Child process was terminated by segmentation fault with memcached<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=63"> + http://www.pgpool.net/mantisbt/view.php?id=63 + </a> +</blockquote> +</li> + +<li> +スタートアップパケットに PostgreSQL ユーザ情報が含まれていなかった場合に発生する子プロセスのセグメンテーション違反を修正しました。(Yugo Nagata) +<p> +このバグは以下を実行することにより再現できます。 +</p> +<pre> + $ psql -p 9999 -U '' +</pre> +<p> +enable_pool_hba が有効の場合は子プロセスがセグメンテーション違反で異常終了し、無効の場合には以下のメッセージがログに出力されていました。 +</p> +<pre> + ERROR: pool_discard_cp: cannot get connection pool for user (null) database (null) +</pre> + +<p> +また、両方の場合で psql はフロントエンドに何のメッセージ出力せずに終了していました。 +修正後は、スタートアップパケットに PostgreSQL ユーザが指定されていない場合には以下のメッセージがログとフロントエンドの両方に出力されます。 +これは PostgreSQLと同じ振る舞いです。 +</p> +<pre> + FATAL: no PostgreSQL user name specified in startup packet +</pre> +</li> + +<li> +オンメモリクエリを有効にした時の拡張クエリの処理におけるメモリ割り当てロジックを修正しました。(Tatsuo Ishii) +<p> +バインドパラメータ付きの拡張クエリで、1024 バイト以上の長いクエリ文字列が渡されたときに、十分なメモリ割り当てができていませんでした。 +</p> +</li> + +<li> +マニュアルの ssl_sa_cert, ssl_ca_cert_dir オプションの説明を SSL セクションに移動しました。(Yugo Nagata) +</li> + +<li> +ssl_sa_cert, ssl_ca_cert_dir オプションの説明を日本語マニュアルに追加しました。(Yugo Nagata) +</li> + +<li> +pcp_recovery_node コマンドで、バックエンドノード番号をチェックするように修正しました。(Yugo Nagata) +<p> +不正な値が使用された場合、リカバリで実行されるスクリプトの引数に空の値が渡されており、誤動作の原因となっていました。 +特にベースバックアップを行うスクリプトで、rsync が関係のないファイルを削除してしまうことがありました。 +</p> +</li> +</ul> <h2><a name="release3.2.4"></a>3.2.4 (namameboshi) 2013/04/26</h2> <h3>概要</h3> @@ -7490,6 +7688,117 @@ autoconf <hr> +<h2><a name="release3.1.8"></a>3.1.8 (hatsuiboshi) 2013/07/10</h2> +<h3>概要</h3> +<p> +このバージョンは 3.1.7 に対するバグ修正リリースです。 +</p> +<h3>バグ修正</h3> +<ul> +<li> +man ページに -D オプションの記述を追加しました。(Tatsuo Ishii) +</li> + +<li> +オンラインリカバリ時のフェイルバックの完了待機でタイムアウト処理をするようにしました。(Tatsuo Ishii) +<p> +これによりリカバリが永遠に終わらず pgpool-II が終了できなくなる状況を回避します。 +この現象は特に follow_master_command の実行中に起こり得ました。 +</p> +</li> + +<li> +ストリームレプリケーションモードでの follow_master_command 実行時に、%H に新しいプライマリノードが正しく割り当てられないバグを修正しました。 +(Tatsuo Ishii) +</li> + +<li> +PostgreSQL がエラーを返したときに do_query() がハングしないよう修正しました。 +(Tatsuo Ishii) +<p> +典型的な症状が「pg_stat_activety によると SELECT が実行されたままのように見える」というものです。 +これを解決するため、pgpool-II は当該プロセスを終了させ、既存のコネクションを捨てるように修正しました。 +</p> +</li> + +<li> +拡張プロトコルの際に do_query で発生しうるハングアップを修正しました。 +(Tatsuo Ishii) +<p> +これは insert_lock が有効で、pgpool_catalog.insert_lock が存在することに起こり得ます。 +詳しくは [pgpool-general: 1684] を参照してください。 +</p> +<blockquote> + [pgpool-general: 1684] insert_lock hangs <br /> + <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html"> + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html + </a> +</blockquote> +</li> + +<li> +COMMIT 時エラーに不要なバックエンド切り離しを行わないようにしました。 +(Tatsuo Ishii) +<p> +マスタースレーブモードで、COMMIT 時にマスターノードでエラーが発生していたとしても、他のスレーブノードが正常な場合にはバックエンドを切り離す必要はありません。 +これは、遅延トリガーのために "kind mismatch error" が発生しうるからです。 +</p> +</li> + +<li> +pgpool_regclass を pg_catalog スキーマに登録するよう修正しました。 +(Tatsuo Ishii) +<p> +これは postgres_fdw のような、スキーマ検索パスが pg_catalog に限定されているクライアントに対応するために必要です。 +</p> +</li> + +<li> +pg_md5 コマンドで起こりうるクラッシュを修正しました。(Muhammad Usama) +</li> + +<li> +スタートアップパケットに PostgreSQL ユーザ情報が含まれていなかった場合に発生する子プロセスのセグメンテーション違反を修正しました。(Yugo Nagata) +<p> +このバグは以下を実行することにより再現できます。 +</p> +<pre> + $ psql -p 9999 -U '' +</pre> +<p> +enable_pool_hba が有効の場合は子プロセスがセグメンテーション違反で異常終了し、無効の場合には以下のメッセージがログに出力されていました。 +</p> +<pre> + ERROR: pool_discard_cp: cannot get connection pool for user (null) database (null) +</pre> + +<p> +また、両方の場合で psql はフロントエンドに何のメッセージ出力せずに終了していました。 +修正後は、スタートアップパケットに PostgreSQL ユーザが指定されていない場合には以下のメッセージがログとフロントエンドの両方に出力されます。 +これは PostgreSQLと同じ振る舞いです。 +</p> +<pre> + FATAL: no PostgreSQL user name specified in startup packet +</pre> +</li> + +<li> +マニュアルの ssl_sa_cert, ssl_ca_cert_dir オプションの説明を SSL セクションに移動しました。(Yugo Nagata) +</li> + +<li> +ssl_sa_cert, ssl_ca_cert_dir オプションの説明を日本語マニュアルに追加しました。(Yugo Nagata) +</li> + +<li> +pcp_recovery_node コマンドで、バックエンドノード番号をチェックするように修正しました。(Yugo Nagata) +<p> +不正な値が使用された場合、リカバリで実行されるスクリプトの引数に空の値が渡されており、誤動作の原因となっていました。 +特にベースバックアップを行うスクリプトで、rsync が関係のないファイルを削除してしまうことがありました。 +</p> +</li> +</ul> + <h2><a name="release3.1.7"></a>3.1.7 (hatsuiboshi) 2013/04/26</h2> <h3>概要</h3> <p> @@ -8363,6 +8672,112 @@ Date: Wed, 05 Oct 2011 15:15:07 -0700 <hr> +<h2><a name="release3.0.12"></a>3.0.12 (umiyameboshi) 2013/07/10</h2> +<h3>概要</h3> +<p> +このバージョンは 3.0.11 に対するバグ修正リリースです。 +</p> +<h3>バグ修正</h3> +<ul> +<li> +man ページに -D オプションの記述を追加しました。(Tatsuo Ishii) +</li> + +<li> +オンラインリカバリ時のフェイルバックの完了待機でタイムアウト処理をするようにしました。(Tatsuo Ishii) +<p> +これによりリカバリが永遠に終わらず pgpool-II が終了できなくなる状況を回避します。 +この現象は特に follow_master_command の実行中に起こり得ました。 +</p> +</li> + +<li> +PostgreSQL がエラーを返したときに do_query() がハングしないよう修正しました。 +(Tatsuo Ishii) +<p> +典型的な症状が「pg_stat_activety によると SELECT が実行されたままのように見える」というものです。 +これを解決するため、pgpool-II は当該プロセスを終了させ、既存のコネクションを捨てるように修正しました。 +</p> +</li> + +<li> +拡張プロトコルの際に do_query で発生しうるハングアップを修正しました。 +(Tatsuo Ishii) +<p> +これは insert_lock が有効で、pgpool_catalog.insert_lock が存在することに起こり得ます。 +詳しくは [pgpool-general: 1684] を参照してください。 +</p> +<blockquote> + [pgpool-general: 1684] insert_lock hangs <br /> + <a href="http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html"> + http://www.sraoss.jp/pipermail/pgpool-general/2013-May/001711.html + </a> +</blockquote> +</li> + +<li> +COMMIT 時エラーに不要なバックエンド切り離しを行わないようにしました。 +(Tatsuo Ishii) +<p> +マスタースレーブモードで、COMMIT 時にマスターノードでエラーが発生していたとしても、他のスレーブノードが正常な場合にはバックエンドを切り離す必要はありません。 +これは、遅延トリガーのために "kind mismatch error" が発生しうるからです。 +</p> +</li> + +<li> +pgpool_regclass を pg_catalog スキーマに登録するよう修正しました。 +(Tatsuo Ishii) +<p> +これは postgres_fdw のような、スキーマ検索パスが pg_catalog に限定されているクライアントに対応するために必要です。 +</p> +</li> + +<li> +pg_md5 コマンドで起こりうるクラッシュを修正しました。(Muhammad Usama) +</li> + +<li> +スタートアップパケットに PostgreSQL ユーザ情報が含まれていなかった場合に発生する子プロセスのセグメンテーション違反を修正しました。(Yugo Nagata) +<p> +このバグは以下を実行することにより再現できます。 +</p> +<pre> + $ psql -p 9999 -U '' +</pre> +<p> +enable_pool_hba が有効の場合は子プロセスがセグメンテーション違反で異常終了し、無効の場合には以下のメッセージがログに出力されていました。 +</p> +<pre> + ERROR: pool_discard_cp: cannot get connection pool for user (null) database (null) +</pre> + +<p> +また、両方の場合で psql はフロントエンドに何のメッセージ出力せずに終了していました。 +修正後は、スタートアップパケットに PostgreSQL ユーザが指定されていない場合には以下のメッセージがログとフロントエンドの両方に出力されます。 +これは PostgreSQLと同じ振る舞いです。 +</p> +<pre> + FATAL: no PostgreSQL user name specified in startup packet +</pre> +</li> + +<li> +マニュアルの ssl_sa_cert, ssl_ca_cert_dir オプションの説明を SSL セクションに移動しました。(Yugo Nagata) +</li> + +<li> +ssl_sa_cert, ssl_ca_cert_dir オプションの説明を日本語マニュアルに追加しました。(Yugo Nagata) +</li> + +<li> +pcp_recovery_node コマンドで、バックエンドノード番号をチェックするように修正しました。(Yugo Nagata) +<p> +不正な値が使用された場合、リカバリで実行されるスクリプトの引数に空の値が渡されており、誤動作の原因となっていました。 +特にベースバックアップを行うスクリプトで、rsync が関係のないファイルを削除してしまうことがありました。 +</p> +</li> +</ul> + <h2><a name="release3.0.11"></a>3.0.11 (umiyameboshi) 2013/04/26</h2> <h3>概要</h3> <p> [parent: 20acb29ce424]