pgpool2.git / summary / log / commit / refs

commit    2dbbef2f82a4661caeb9d89719b84f50a44a0727
Author:   Yugo Nagata <nagata@sraoss.co.jp>
Date:     Fri Sep 12 07:32:35 2014 +0000

    Add release notes


NEWS | 476 ++++++++++++++++++++++++++++++++++++++++ doc/pgpool-ja.html | 623 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 1088 insertions(+), 11 deletions(-) diff --git a/NEWS b/NEWS index d4aaff6ab..817ca0f6e 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,231 @@ =============================================================================== 3.3 Series (2013/07/30 - ) +=============================================================================== + + 3.3.4 (tokakiboshi) 2014/09/05 + +* Version 3.3.4 + + This is a bugfix release against pgpool-II 3.3.3. + + __________________________________________________________________ + +* Bug fixes + + - Fix a typo of pgpool.spec (Yugo Nagata) + + - Fix bug that worker child process keeps failing when there's no + primary backend (Tatsuo Ishii) + + Problem identified and fix contributed by Junegunn Choi. + + See [pgpool-hackers: 471] for more details. + + - Close listen socket when smart shutdown request is made (Tatsuo Ishii) + + When smart shutdown process starts, pgpool children still listen on + the port and clients can send further connection requests which fail + in the end. Which is not only waste of time, but also prevents a load + balancer which sits in front of pgpool from realizing the pgpool is + going down. + + Problem analyzed and patch provided by Junegunn Choi in [pgpool-hackers + 474], and enhanced to take care not only inet domain socket but UNIX + domain socket by Tatsuo Ishii. + + - doc: Add cautions that recovery commands are killed by statement_timeout + of PostgreSQL. (Tatsuo Ishii) + + - test: Fix bug that wait_for_pgpool_startup does not work. (Tatsuo Ishii) + + - test: Fix test driver for watchdog to use wait_for_pgpool_startup correctly + (Tatsuo Ishii) + + - Fix to ignore a harmless error code when executing ifconfig command + (Yugo Nagata) + + When executing command such as ifconfig or ping by execv() in a forked + child proess, wait() can fails with an error code ECHILD, although the + process exists exactly, if SIGCHLD is set to SIG_IGN in Linux. We should + ignore this and not treat as failure of the command. + + - test: Add undocumented "-j" option to the script comment. (Tatsuo Ishii) + + - test: Fix unwanted JDBC regression test failure (Tatsuo Ishii) + + - test: Fix to prevent regression test failures on slow machines + (Tatsuo Ishii) + + - test: Allow to specify PostgreSQL library directory by environment + variable (Tatsuo Ishii) + + - Adopt PostgreSQL 9.4 having to_regclass (Tatsuo Ishii) + + PostgreSQL 9.4 has built-in function "to_regclass", which has + equivalent functionality of pgpool_regclass. Now pgpool searches + to_regclass first then try pgpool_regclass. + + - Fix unportable code related to SO_REUSEPORT (Tatsuo Ishii) + + There are several places using setsockopt(sock, SOL_SOCKET, + SO_REUSEPORT...). SO_REUSEPORT is not available on all Linux kernels + and the source code uses ifdef to detect the feature in the compile + time. Problem is, the binary created with kernel which provides the + feature cannot run on a kernel which does not provide the feature. Fix + is, detecting the feature in the run time by checking error code + returned by setsockopt() and ignore it if the cause of the error is + lacking the feature. + + - doc: Remove old restriction description which is no longer true + (Tatsuo Ishii) + + - Fix return type of text_to_lsn() function (Yugo Nagata) + + This caused compile warning. + + - Fix file descriptor leak when daemonize. (Tatsuo Ishii) + + Per Coverity 1111471. + + - Fix memory leak. (Tatsuo Ishii) + + Per Coverity 1111442. + + - Fix pgpool.init's long-standing bug of stop/restart failure + (Yugo Nagata) + + In previous, pgpool.init uses killproc for stopping pgpool, but there + are several problems. In the new version, "pgpool -m fast stop" is + used in stop command. + + Original patch contributed by Ryan DeShone and modified by Yugo Nagata. + + See [pgpool-hackers: 239][pgpool-hackers: 512]. + + - Allow to run pgpool_setup and regression test on Ubuntu box + (Tatsuo Ishii) + + - test: Fix -i option (install directory of pgpool) not working + (Tatsuo Ishii) + + - Add missing include file sys/wait.h. (Tatsuo Ishii) + + Per bug #104. + http://www.pgpool.net/mantisbt/view.php?id=104 + + - Fix an infinite loop of ping error at new active pgpool when virtual + IP switching (Yugo Nagata) + + This bug also caused hangs of the old active pgpool, since this waits + response from the new active pgpool, which is in the infinite loop and + not able to respond. + + This problem is reported by Qian Peng in [pgpool-hackers: 520]. + + - Disbale statement_timeout of PostgreSQL while executing online recovery + (Tatsuo Ishii) + + Online recovery may take very long time and user may enable statement + timeout. To prevent online recovery canceled by statement timeout, + disable statement timeout in the connection used by online recovery. + + See [pgpool-general: 2919] for more details. + + - Fix pool_table_name_to_oid in case new to_regclass used which is + introduced in PostgreSQL 9.4 (Tatsuo Ishii) + + The relcache func used here should return 0 if target table is not + found. However to_regclass returns NULL in this case. To fix the + problem now COALESCE is used. + + - test: Fix regression test 057 hung if run against PostgreSQL 9.4 or + later (Tatsuo Ishii) + + PostgreSQL 9.4 or later changed libpq behavior: NULL username for + connection string does not cause an error, which was expected in the + test. + + - Fix to close pipe when ping command exits with failure (Yugo Nagata) + + This bug causes pipe open error: Too many open files, which + leads to failure of connecting to trusted servers, and then + pgpool goes to down status. + + - Fix Resource leaks (Muhammad Usama) + + Coverity issue #1222998 and #1222999. + + - Add a description that pcp_detach_node command disconnects existing + sessions (Tatsuo Ishii) + + - Fix failover.sh produced by pgpool_setup (Tatsuo Ishii) + + It did not support there's more than 2 nodes case. It always tries to + promoto node0 or node1. + + - Remove meaningless minus check because of unsigned int variable + (Tatsuo Ishii) + + Coverity issue #1111419, #1111420, #1111422. + + - replacing strcpy() with much safer and recomended call strlcpy() + (Muhammad Usama) + + Coverity issue #1111480. + + - Fix pgpool.spec to support openssl (Tatsuo Ishii) + + - Fix pgpool.spec to use 3.3-stable tree head (Tatsuo Ishii) + + - Remove unnecessary call to pool_shmem_exit() which removes semaphore + when it shouldn't (Tatsuo Ishii) + + exit_handler checks if the process is parent or not. This is + good. However, even if it is a child process, it calls + pool_shmem_exit() which removes semaphore and shmem when it should + not. It should be called only from parent process. + + Per bug #102. + http://www.pgpool.net/mantisbt/view.php?id=102 + + - Fix get_insert_command_table_name() function not to use freed pointer + (Muhammad Usama) + + Coverity issue #1223007. + + - Fix pool_handle_query_cache() to not free NULL pointer (Tatsuo Ishii) + + - Change connect() timeout longer (10 seconds) for flaky network + (Tatsuo Ishii) + + Change connect() timeout in connect_inet_domain_socket_by_port() from + 1 second to 10 seconds for flaky network such as AWS. This should help + reducing frequent failover. + + - Fix reset query stuck problem. (Tatsuo Ishii) + + It is reported that reset query (DISCARD ALL etc.) occasionally does + not finish and pgpool child remain waiting for reply from backend thus + client cannot connect to pgpool. + + The cause of problem is not identified yet but if client suddenly + closes connection to pgpool in the middle of query processing, backend + may not accept the reset queries because they are not ready for query. + + The fix is, if frontend closes connection in unexpected way, query + process loop immediately returns with new state: + POOL_END_WITH_FRONTEND_ERROR and pgpool closes connection to + PostgreSQL then goes back to new connection request waiting loop. + + Also, pgpool closes connections to backend when client_idle_limit is + set and the idle limit. + + Per bug #107. + http://www.pgpool.net/mantisbt/view.php?id=107 + + - Fix other dozens of coverity issues (Muhammad Usama) + =============================================================================== 3.3.3 (tokakiboshi) 2014/03/24 @@ -871,6 +1096,93 @@ =============================================================================== 3.2 Series (2012/08/03 - ) +=============================================================================== + + 3.2.9 (namameboshi) 2014/09/05 + +* Version 3.2.9 + + This is a bugfix release against pgpool-II 3.2.8. + + __________________________________________________________________ + +* Bug fixes + + - Fix a typo of pgpool.spec (Yugo Nagata) + + - Fix bug that worker child process keeps failing when there's no + primary backend (Tatsuo Ishii) + + Problem identified and fix contributed by Junegunn Choi. + + See [pgpool-hackers: 471] for more details. + + - Close listen socket when smart shutdown request is made (Tatsuo Ishii) + + When smart shutdown process starts, pgpool children still listen on + the port and clients can send further connection requests which fail + in the end. Which is not only waste of time, but also prevents a load + balancer which sits in front of pgpool from realizing the pgpool is + going down. + + Problem analyzed and patch provided by Junegunn Choi in [pgpool-hackers + 474], and enhanced to take care not only inet domain socket but UNIX + domain socket by Tatsuo Ishii. + + - doc: Add cautions that recovery commands are killed by statement_timeout + of PostgreSQL. (Tatsuo Ishii) + + - doc: Remove old restriction description which is no longer true + (Tatsuo Ishii) + + - Fix return type of text_to_lsn() function (Yugo Nagata) + + This caused compile warning. + + - Fix file descriptor leak when daemonize. (Tatsuo Ishii) + + Per Coverity 1111471. + + - Fix memory leak. (Tatsuo Ishii) + + Per Coverity 1111442. + + - Fix pgpool.init's long-standing bug of stop/restart failure + (Yugo Nagata) + + In previous, pgpool.init uses killproc for stopping pgpool, but there + are several problems. In the new version, "pgpool -m fast stop" is + used in stop command. + + Original patch contributed by Ryan DeShone and modified by Yugo Nagata. + + See [pgpool-hackers: 239][pgpool-hackers: 512]. + + - Add missing include file sys/wait.h. (Tatsuo Ishii) + + Per bug #104. + http://www.pgpool.net/mantisbt/view.php?id=104 + + - Disbale statement_timeout of PostgreSQL while executing online recovery + (Tatsuo Ishii) + + Online recovery may take very long time and user may enable statement + timeout. To prevent online recovery canceled by statement timeout, + disable statement timeout in the connection used by online recovery. + + See [pgpool-general: 2919] for more details. + + - Remove unnecessary call to pool_shmem_exit() which removes semaphore + when it shouldn't (Tatsuo Ishii) + + exit_handler checks if the process is parent or not. This is + good. However, even if it is a child process, it calls + pool_shmem_exit() which removes semaphore and shmem when it should + not. It should be called only from parent process. + + Per bug #102. + http://www.pgpool.net/mantisbt/view.php?id=102 + =============================================================================== 3.2.8 (namameboshi) 2014/03/24 @@ -2556,6 +2868,88 @@ =============================================================================== 3.1 Series (2011/09/08 - ) +=============================================================================== + + 3.1.12 (hatsuiboshi) 2014/09/05 + +* Version 3.1.12 + + This is a bugfix release against pgpool-II 3.1.11. + + __________________________________________________________________ + +* Bug fixes + + - Fix a typo of pgpool.spec (Yugo Nagata) + + - Fix bug that worker child process keeps failing when there's no + primary backend (Tatsuo Ishii) + + Problem identified and fix contributed by Junegunn Choi. + + See [pgpool-hackers: 471] for more details. + + - Close listen socket when smart shutdown request is made (Tatsuo Ishii) + + When smart shutdown process starts, pgpool children still listen on + the port and clients can send further connection requests which fail + in the end. Which is not only waste of time, but also prevents a load + balancer which sits in front of pgpool from realizing the pgpool is + going down. + + Problem analyzed and patch provided by Junegunn Choi in [pgpool-hackers + 474], and enhanced to take care not only inet domain socket but UNIX + domain socket by Tatsuo Ishii. + + - doc: Add cautions that recovery commands are killed by statement_timeout + of PostgreSQL. (Tatsuo Ishii) + + - doc: Remove old restriction description which is no longer true + (Tatsuo Ishii) + + - Fix return type of text_to_lsn() function (Yugo Nagata) + + This caused compile warning. + + - Fix file descriptor leak when daemonize. (Tatsuo Ishii) + + Per Coverity 1111471. + + - Fix memory leak. (Tatsuo Ishii) + + Per Coverity 1111442. + + - Fix pgpool.init's long-standing bug of stop/restart failure + (Yugo Nagata) + + In previous, pgpool.init uses killproc for stopping pgpool, but there + are several problems. In the new version, "pgpool -m fast stop" is + used in stop command. + + Original patch contributed by Ryan DeShone and modified by Yugo Nagata. + + See [pgpool-hackers: 239][pgpool-hackers: 512]. + + - Disbale statement_timeout of PostgreSQL while executing online recovery + (Tatsuo Ishii) + + Online recovery may take very long time and user may enable statement + timeout. To prevent online recovery canceled by statement timeout, + disable statement timeout in the connection used by online recovery. + + See [pgpool-general: 2919] for more details. + + - Remove unnecessary call to pool_shmem_exit() which removes semaphore + when it shouldn't (Tatsuo Ishii) + + exit_handler checks if the process is parent or not. This is + good. However, even if it is a child process, it calls + pool_shmem_exit() which removes semaphore and shmem when it should + not. It should be called only from parent process. + + Per bug #102. + http://www.pgpool.net/mantisbt/view.php?id=102 + =============================================================================== 3.1.11 (hatsuiboshi) 2014/03/24 @@ -3697,6 +4091,88 @@ =============================================================================== 3.0 Series (2013/07/30 - ) +=============================================================================== + + 3.0.16 (umiyameboshi) 2014/09/05 + +* Version 3.0.16 + + This is a bugfix release against pgpool-II 3.0.15. + + __________________________________________________________________ + +* Bug fixes + + - Fix a typo of pgpool.spec (Yugo Nagata) + + - Fix bug that worker child process keeps failing when there's no + primary backend (Tatsuo Ishii) + + Problem identified and fix contributed by Junegunn Choi. + + See [pgpool-hackers: 471] for more details. + + - Close listen socket when smart shutdown request is made (Tatsuo Ishii) + + When smart shutdown process starts, pgpool children still listen on + the port and clients can send further connection requests which fail + in the end. Which is not only waste of time, but also prevents a load + balancer which sits in front of pgpool from realizing the pgpool is + going down. + + Problem analyzed and patch provided by Junegunn Choi in [pgpool-hackers + 474], and enhanced to take care not only inet domain socket but UNIX + domain socket by Tatsuo Ishii. + + - doc: Add cautions that recovery commands are killed by statement_timeout + of PostgreSQL. (Tatsuo Ishii) + + - doc: Remove old restriction description which is no longer true + (Tatsuo Ishii) + + - Fix return type of text_to_lsn() function (Yugo Nagata) + + This caused compile warning. + + - Fix file descriptor leak when daemonize. (Tatsuo Ishii) + + Per Coverity 1111471. + + - Fix memory leak. (Tatsuo Ishii) + + Per Coverity 1111442. + + - Fix pgpool.init's long-standing bug of stop/restart failure + (Yugo Nagata) + + In previous, pgpool.init uses killproc for stopping pgpool, but there + are several problems. In the new version, "pgpool -m fast stop" is + used in stop command. + + Original patch contributed by Ryan DeShone and modified by Yugo Nagata. + + See [pgpool-hackers: 239][pgpool-hackers: 512]. + + - Disbale statement_timeout of PostgreSQL while executing online recovery + (Tatsuo Ishii) + + Online recovery may take very long time and user may enable statement + timeout. To prevent online recovery canceled by statement timeout, + disable statement timeout in the connection used by online recovery. + + See [pgpool-general: 2919] for more details. + + - Remove unnecessary call to pool_shmem_exit() which removes semaphore + when it shouldn't (Tatsuo Ishii) + + exit_handler checks if the process is parent or not. This is + good. However, even if it is a child process, it calls + pool_shmem_exit() which removes semaphore and shmem when it should + not. It should be called only from parent process. + + Per bug #102. + http://www.pgpool.net/mantisbt/view.php?id=102 + =============================================================================== 3.0.15 (umiyameboshi) 2014/03/24 diff --git a/doc/pgpool-ja.html b/doc/pgpool-ja.html index 8c563a3bc..83f00fee3 100644 --- a/doc/pgpool-ja.html +++ b/doc/pgpool-ja.html @@ -6084,6 +6084,288 @@ SELECTの最終実行ステータスとパフォーマンスのおおよその <!-- ================================================================================ --> <hr><a name="release3.3.x"></a> +<!-- -------------------------------------------------------------------------------- --> +<h2><a name="release3.3.4"></a>3.3.4 (tokakiboshi) 2014/09/05</h2> +<!-- -------------------------------------------------------------------------------- --> + +<h3>概要</h3> +<p> +このバージョンは 3.3.3 に対するバグ修正リリースです。 +</p> + +<h3>バグ修正</h3> +<ul> + +<li> + pgpool.spec のタイポを修正しました。(Yugo Nagata) +</li> + +<li> + プライマリバックエンドが存在しない場合に、ワーカー子プロセスが終了と再起動を繰り返すバグを修正しました。(Tatsuo Ishii) + <p> + 問題の同定と修正は Junegunn Choi さんの貢献によります。 + </p> + <p> + 詳しくは、[pgpool-hackers: 471] を参照してください。 + </p> +</li> + +<li> + スマートシャットダウンの実行時には受信用ソケットを閉じるように修正しました。(Tatsuo Ishii) + <p> + スマートシャットダウンが実行された場合でも、pgpool の子プロセスは受信用のポートを開いており、最終的に失敗するにもかからわずクライアントは接続要求を送信可能です。これは時間の無駄であるでけではなく、pgpool のフロントにいるロードバランサによる pgpool の停止の検出を妨げます。 + </p> + <p> + この問題は [pgpool-hackers 474] にて Junegunn Choi によって解析され、パッチが提供されました。これを Tatsuo Ishii が改良し、inet ドメインだけではなく UNIX ドメインのソケットにも対応させました。 + </p> +</li> + +<li> + doc: PostgreSQL の statement_timeout によって、リカバリコマンドが終了させられる可能性を追記しました。(Tatsuo Ishii) +</li> + +<li> + test: wait_for_pgpool_startup 関数が正しく動いていなかったのを修正しました。(Tatsuo Ishii) +</li> + +<li> + test: watchdog のテストドライバが wait_for_pgpool_startup 関数を正しく使用するように修正しました。(Tatsuo Ishii) +</li> + +<li> + ifconfig コマンドの実行時に無害なエラーコードを無視するよう修正しました。(Yugo Nagata) + <p> + Linux で SIGCHLD のハンドラが SIG_IGN となっている場合、fork した子プロセスの中で execv() を用いて ifconfig や ping などのコマンドを実行した結果、wait()が実際にはプロセスが正常終了しているにもかからわず、エラーコード ECHILD で失敗する場合があります。このエラーは無視して、コマンドの実行は成功とみなすよう修正しました。 + </p> +</li> + +<li> + test: スクリプトのコメントに記載漏れのあった -j オプションの説明を追記しました。(Tatsuo Ishii) +</li> + +<li> + test: JDBC のレグレッションテストが想定外の失敗するのを修正しました。(Tatsuo Ishii) +</li> + +<li> + test: 遅いマシンでレグレッションテストが失敗しないよう修正しました。(Tatsuo Ishii) +</li> + +<li> + test: PostgreSQL ライブラリのディレクトリを環境変数で指定できるようになりました。(Tatsuo Ishii) +</li> + +<li> + to_regclass 関数を持つ PostgreSQL 9.4 に対応しました。(Tatsuo Ishii) + <p> + PostgreSQL 9.4 は pgpool_regclass と同じ機能を持つ組み込み関数to_regclass を持っています。そのため、pgpool はまず to_regclassを探し、その後に pgpool_regclass を探すようになりました。 + </p> +</li> + +<li> + SO_REUSEPORT に関するコードの移植性の問題を修正しました。(Tatsuo Ishii) + <p> + 何か所かで、setsockopt(sock, SOL_SOCKET, SO_REUSEPORT...) を使用していますが、SO_REUSEPORT は全ての Linux カーネルで使用可能ではありません。そのためコンパイル時に ifdef を用いて機能の有無を判断していました。しかし、あるカーネルで作成したバイナリが他のカーネルで実行できないという問題があったため、setsockopt() が返すエラーコードを用いて実行時に機能の有無を判断するように修正しました。 + </p> +</li> + +<li> + dic: 現在は当てはまらない古い制限事項を削除しました。(Tatsuo Ishii) +</li> + +<li> + text_to_lsn() 関数の返却値型を修正しました。(Yugo Nagata) + <p> + コンパイル時の警告の原因となっていました。 + </p> +</li> + +<li> + デーモン化した際にファイル識別子が閉じられていなかったのを修正しました。(Tatsuo Ishii) + <p> + Coverity の報告 #1111471 によります。 + </p> +</li> + +<li> + メモリリークを修正しました。 (Tatsuo Ishii) + <p> + Coverity の報告 #1111442 によります。 + </p> +</li> + +<li> + 長らく放置されていた pgool.init の stop/restart のバグを修正しました。(Yugo Nagata) + <p> + 以前は pgpool の停止に pgpool.init は killproc を用いていましたが、これにはいくつか問題がありました。これを、"pgpool -m fast stop" を用いるように修正しました。 + </p> + <p> + Ryan DeShone により提供されたパッチを Yugo Nagata が修正しました。 + </p> + <p> + 詳しくは、[pgpool-hackers: 239][pgpool-hackers: 512] を参照してください。 + </p> +</li> + +<li> + pgpool_setup とレグレッションテストが Ubuntu で動くよう修正しました。(Tatsuo Ishii) +</li> + +<li> + test: -i オプション(pgpool インストールディレクトリの指定)が動作していなかったのを修正しました。(Tatsuo Ishii) +</li> + +<li> + 不足していたインクルードファイル sys/wait.h を追加しました。(Tatsuo Ishii) + <blockquote> + bug #104 の報告によります。<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=104"> + http://www.pgpool.net/mantisbt/view.php?id=104 + </a> + </blockquote> +</li> + +<li> + 仮想IPの切り替わり時に、新しいアクティブ pgpool で起こる ping エラーの無限ループを修正しました。(Yugo Nagata) + <p> + また、新アクティブが無限ループにより応答できなくなるため、これの応答を待っている旧アクティブ pgpool がハングする原因にもなっていました。 + </p> + <p> + この問題は [pgpool-hackers: 520] にて Qian Peng により報告されました。 + </p> +</li> + +<li> + オンラインリカバリの実行時は PostgreSQL の statement_timeout を無効にするようになりました。(Tatsuo Ishii) + <p> + オンラインリカバリは異常に長い時間を要する可能性がある一方、ユーザは statement_timeout を有効にしている可能性があります。これによりオンラインリカバリがキャンセルされるのを防ぐため、リカバリの最中は statement_timeout を無効にするようになりました。 + </p> + <p> + 詳しくは [pgpool-general: 2919] を参照してください。 + </p> +</li> + +<li> + pool_table_nameto_oid 関数が PostgreSQL 9.4 で導入された to_regclass を使えるように修正しました。(Tatsuo Ishii) + <p> + ここで用いる relcache 関数は、対象のテーブルが存在しない場合は 0 を返す必要がありますが、to_regclass はこの場合 NULL を返します。これに対処するため COALESCE を用いるように修正しました。 + </p> +</li> + +<li> + test: PostgreSQL 9.4 以降でレグレッションテスト #057 がハングするバグを修正しました。(Tatsuo Ishii) + <p> + PostgreSQL 9.4 以降では libpq の振る舞いに変化があり、接続文字列のusername が NULL の場合でもエラーになりません。以前のテストはエラーになることが前提となっていました。 + </p> +</li> + +<li> + ping コマンド失敗時にパイプを閉じるように修正しました。(Yugo Nagata) + <p> + このバグにより "pipe open error: Too many open files" を引き起こすため、watchdog 有効時に上位サーバへの接続確認が失敗し、その結果 pgpool がダウンステータスとなってしまうことがありました。 + </p> +</li> + +<li> + リソースリークを修正しました。(Muhanmmad Usama) + <p> + Coverity の報告 #1222998, #1222999 によります。 + </p> +</li> + +<li> + pcp_detach_node コマンドが接続中のセッションを切断することを記載しました。(Tatsuo Ishii) +</li> + +<li> + pgpool_setup が生成する failover.sh を修正しました。(Tatsuo Ishii) + <p> + 常に node0 か node1 を昇格させようとしており、3 ノード以上の構成に対応していませんでした。 + </p> +</li> + +<li> + unsigned int 変数の意味の無い符号のチェックを取り除きました。(Tatsuo Ishii) + <p> + Coverity の報告 #1111419, #1111420, #1111422 によります。 + </p> +</li> + +<li> + strcpy() をより安全で推奨される strlcpy() に置き換えました。(Muhammad Usama) + <p> + Coverity の報告 #1111480 によります。 + </p> +</li> + +<li> + openssl に対応させるよう pgpool.spec を修正しました。(Tatsuo Ishii) +</li> + +<li> + pgpool.spec が 3.3-stable ツリーの head を使用するよう修正しました。(Tatsuo Ishii) +</li> + +<li> + 不適切にセマフォを削除しないよう不必要な pool_shmem_exit() 呼び出しを取り除きました。(Tatsuo Ishii) + <p> + exit_handler はプロセスが親プロセスがどうかをチェックしていますが、子プロセスであった場合にも pool_shmem_exit() が呼ばれることがあり、これにより不適切にセマフォが削除されていました。この関数は親プロセス以外に呼ばれてはなりません。 + </p> + <blockquote> + bug #102 によります。<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=102"> + http://www.pgpool.net/mantisbt/view.php?id=102 + </a> + </blockquote> +</li> + +<li> + get_insert_command_tabel_name() 関数が解放済ポインタを使用しないよう修正しました。(Muhammad Usama) + <p> + Coverity の報告 #1223007 によります。 + </p> +</li> + +<li> + pool_handle_query_cache() 関数が NULL ポインタを解放しないよう修正しました。(Tatsuo Ishii) +</li> + +<li> + 頼りないネットワークのため、connect() のタイムアウトを長め(10秒)に変更しました。(Tatsuo Ishii) + <p> + AWS などの頼りないネットワークに対応するため、connect_inet_domain_socket_by_port()の中の connect()のタイムアウトを1秒から10秒に変更しました。これにより頻発していたフェイルオーバを減らすことができます。 + </p> +</li> + +<li> + リセット用クエリにより発生するハングを修正しました。(Tatsuo Ishii) + <p> + DISCARD ALL などのリセットクエリが完了せず、pgpool の子プロセスがバックエンドからの反応を待ったまま固まってしまい、新しいクライアントからの接続が受けられなくなる問題が報告されました。 + </p> + <p> + 原因はまだ特定されていませんが、クライアントの接続がクエリ処理の最中に突然切断された場合、バックエンドがクエリを処理できない状態となり、リセットクエリを受け付けられなくのかもしれません。 + </p> + <p> + これに対処するため、フロントエンドから接続が予期せず切断された場合は、クエリ処理ループを即座に終了し PostgreSQL への接続を切断し、新しい接続要求を待つように修正しました。 + </p> + <p> + また client_idle_limit が設定されており、リミットに達した場合にもpgpool はバックエンドへの接続を切断するよう修正されました。 + </p> + <blockquote> + bug #107 の報告によります。<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=107"> + http://www.pgpool.net/mantisbt/view.php?id=107 + </a> + </blockquote> +</li> + +<li> + その他の何十もの Coverity 報告バグが修正されました。(Muhammad Usama) +</li> + + +</ul> + <!-- -------------------------------------------------------------------------------- --> <h2><a name="release3.3.3"></a>3.3.3 (tokakiboshi) 2014/03/24</h2> <!-- -------------------------------------------------------------------------------- --> @@ -6231,7 +6513,7 @@ SELECTの最終実行ステータスとパフォーマンスのおおよその </li> <li> - NULL ポインタの開放を修正しました。(Tatsuo Ishii) + NULL ポインタの解放を修正しました。(Tatsuo Ishii) <p> Coverity 1111384 の報告によります。 </p> @@ -6569,10 +6851,10 @@ parse によるロックが残存するためです。</p> オンメモリクエリキャッシュ使用時に子プロセスが sig abort で異常終了するバグを修正しました。 (Tatsuo Ishii) <p> - parse メッセージの後に複数の bind/execute メッセージが来た場合に発生していた、メモリの二重開放がこのバグの原因です。 + parse メッセージの後に複数の bind/execute メッセージが来た場合に発生していた、メモリの二重解放がこのバグの原因です。 parse メッセージが来ると、クエリコンテキストと共に一時的なキャッシュが作成され、 クエリの実行時にこの一時キャッシュを指すポインタが配列に追加されます。そして、続く複数の bind - メッセージがこの同じポインタを使用することが、キャッシュ削除の際に二重開放を引き起こす原因となっていました。 + メッセージがこの同じポインタを使用することが、キャッシュ削除の際に二重解放を引き起こす原因となっていました。 </p> <p> このバグはバグトラック #68 にて harukat さんにより報告されました。 @@ -7069,6 +7351,119 @@ FATAL: no PostgreSQL user name specified in startup packet <!-- ================================================================================ --> <hr><a name="release3.2.x"></a> +<!-- -------------------------------------------------------------------------------- --> +<h2><a name="release3.2.9"></a>3.2.9 (namameboshi) 2014/09/05</h2> +<!-- -------------------------------------------------------------------------------- --> + +<h3>概要</h3> +<p> +このバージョンは 3.2.8 に対するバグ修正リリースです。 +</p> + +<h3>バグ修正</h3> +<ul> + +<li> + pgpool.spec のタイポを修正しました。(Yugo Nagata) +</li> + +<li> + プライマリバックエンドが存在しない場合に、ワーカー子プロセスが終了と再起動を繰り返すバグを修正しました。(Tatsuo Ishii) + <p> + 問題の同定と修正は Junegunn Choi さんの貢献によります。 + </p> + <p> + 詳しくは、[pgpool-hackers: 471] を参照してください。 + </p> +</li> + +<li> + スマートシャットダウンの実行時には受信用ソケットを閉じるように修正しました。(Tatsuo Ishii) + <p> + スマートシャットダウンが実行された場合でも、pgpool の子プロセスは受信用のポートを開いており、最終的に失敗するにもかからわずクライアントは接続要求を送信可能です。これは時間の無駄であるだけではなく、pgpool のフロントにいるロードバランサによる pgpool の停止の検出を妨げます。 + </p> + <p> + この問題は [pgpool-hackers 474] にて Junegunn Choi によって解析され、パッチが提供されました。これを Tatsuo Ishii が改良し、inet ドメインだけではなく UNIX ドメインのソケットにも対応させました。 + </p> +</li> + +<li> + doc: PostgreSQL の statement_timeout によって、リカバリコマンドが終了させられる可能性を追記しました。(Tatsuo Ishii) +</li> + +<li> + dic: 現在は当てはまらない古い制限事項を削除しました。(Tatsuo Ishii) +</li> + +<li> + text_to_lsn() 関数の返却値型を修正しました。(Yugo Nagata) + <p> + コンパイル時の警告の原因となっていました。 + </p> +</li> + +<li> + デーモン化した際にファイル識別子が閉じられていなかったのを修正しました。(Tatsuo Ishii) + <p> + Coverity の報告 #1111471 によります。 + </p> +</li> + +<li> + メモリリークを修正しました。 (Tatsuo Ishii) + <p> + Coverity の報告 #1111442 によります。 + </p> +</li> + +<li> + 長らく放置されていた pgool.init の stop/restart のバグを修正しました。(Yugo Nagata) + <p> + 以前は pgpool の停止に pgpool.init は killproc を用いていましたが、これにはいくつか問題がありました。これを、"pgpool -m fast stop" を用いるように修正しました。 + </p> + <p> + Ryan DeShone により提供されたパッチを Yugo Nagata が修正しました。 + </p> + <p> + 詳しくは、[pgpool-hackers: 239][pgpool-hackers: 512] を参照してください。 + </p> +</li> + +<li> + 不足していたインクルードファイル sys/wait.h を追加しました。(Tatsuo Ishii) + <blockquote> + bug #104 の報告によります。<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=104"> + http://www.pgpool.net/mantisbt/view.php?id=104 + </a> + </blockquote> +</li> + +<li> + オンラインリカバリの実行時は PostgreSQL の statement_timeout を無効にするようになりました。(Tatsuo Ishii) + <p> + オンラインリカバリは異常に長い時間を要する可能性がある一方、ユーザは statement_timeout を有効にしている可能性があります。これによりオンラインリカバリがキャンセルされるのを防ぐため、リカバリの最中は statement_timeout を無効にするようになりました。 + </p> + <p> + 詳しくは [pgpool-general: 2919] を参照してください。 + </p> +</li> + +<li> + 不適切にセマフォを削除しないよう不必要な pool_shmem_exit() 呼び出しを取り除きました。(Tatsuo Ishii) + <p> + exit_handler はプロセスが親プロセスがどうかをチェックしていますが、子プロセスであった場合にも pool_shmem_exit() が呼ばれることがあり、これにより不適切にセマフォが削除されていました。この関数は親プロセス以外に呼ばれてはなりません。 + </p> + <blockquote> + bug #102 によります。<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=102"> + http://www.pgpool.net/mantisbt/view.php?id=102 + </a> + </blockquote> +</li> + +</ul> + <!-- -------------------------------------------------------------------------------- --> <h2><a name="release3.2.8"></a>3.2.8 (namameboshi) 2014/03/24</h2> <!-- -------------------------------------------------------------------------------- --> @@ -7168,7 +7563,7 @@ FATAL: no PostgreSQL user name specified in startup packet </li> <li> - NULL ポインタの開放を修正しました。(Tatsuo Ishii) + NULL ポインタの解放を修正しました。(Tatsuo Ishii) <p> Coverity 1111384 の報告によります。 </p> @@ -7498,10 +7893,10 @@ parse によるロックが残存するためです。</p> オンメモリクエリキャッシュ使用時に子プロセスが sig abort で異常終了するバグを修正しました。 (Tatsuo Ishii) <p> - parse メッセージの後に複数の bind/execute メッセージが来た場合に発生していた、メモリの二重開放がこのバグの原因です。 + parse メッセージの後に複数の bind/execute メッセージが来た場合に発生していた、メモリの二重解放がこのバグの原因です。 parse メッセージが来ると、クエリコンテキストと共に一時的なキャッシュが作成され、 クエリの実行時にこの一時キャッシュを指すポインタが配列に追加されます。そして、続く複数の bind - メッセージがこの同じポインタを使用することが、キャッシュ削除の際に二重開放を引き起こす原因となっていました。 + メッセージがこの同じポインタを使用することが、キャッシュ削除の際に二重解放を引き起こす原因となっていました。 </p> <p> このバグはバグトラック #68 にて harukat さんにより報告されました。 @@ -8429,7 +8824,7 @@ Session 1: LISTEN aaa; --- ハング <li>pool_get_insert_table_name() のメモリリークを修正しました。(Tatsuo Ishii) <p> nodeToString() でセッションコンテクストのメモリコンテクストを使ったあと、 - セッション終了までは、メモリを開放していませんでした。 + セッション終了までは、メモリを解放していませんでした。 </p> <p>詳しくはバグトラックをご覧ください。</p> <blockquote> @@ -9093,6 +9488,109 @@ autoconf <!-- ================================================================================ --> <hr><a name="release3.1.x"></a> +<!-- -------------------------------------------------------------------------------- --> +<h2><a name="release3.1.12"></a>3.1.12 (hatsuiboshi) 2014/09/05</h2> +<!-- -------------------------------------------------------------------------------- --> + +<h3>概要</h3> +<p> +このバージョンは 3.1.11 に対するバグ修正リリースです。 +</p> + +<h3>バグ修正</h3> +<ul> + +<li> + pgpool.spec のタイポを修正しました。(Yugo Nagata) +</li> + +<li> + プライマリバックエンドが存在しない場合に、ワーカー子プロセスが終了と再起動を繰り返すバグを修正しました。(Tatsuo Ishii) + <p> + 問題の同定と修正は Junegunn Choi さんの貢献によります。 + </p> + <p> + 詳しくは、[pgpool-hackers: 471] を参照してください。 + </p> +</li> + +<li> + スマートシャットダウンの実行時には受信用ソケットを閉じるように修正しました。(Tatsuo Ishii) + <p> + スマートシャットダウンが実行された場合でも、pgpool の子プロセスは受信用のポートを開いており、最終的に失敗するにもかからわずクライアントは接続要求を送信可能です。これは時間の無駄であるでけではなく、pgpool のフロントにいるロードバランサによる pgpool の停止の検出を妨げます。 + </p> + <p> + この問題は [pgpool-hackers 474] にて Junegunn Choi によって解析され、パッチが提供されました。これを Tatsuo Ishii が改良し、inet ドメインだけではなく UNIX ドメインのソケットにも対応させました。 + </p> +</li> + +<li> + doc: PostgreSQL の statement_timeout によって、リカバリコマンドが終了させられる可能性を追記しました。(Tatsuo Ishii) +</li> + +<li> + dic: 現在は当てはまらない古い制限事項を削除しました。(Tatsuo Ishii) +</li> + +<li> + text_to_lsn() 関数の返却値型を修正しました。(Yugo Nagata) + <p> + コンパイル時の警告の原因となっていました。 + </p> +</li> + +<li> + デーモン化した際にファイル識別子が閉じられていなかったのを修正しました。(Tatsuo Ishii) + <p> + Coverity の報告 #1111471 によります。 + </p> +</li> + +<li> + メモリリークを修正しました。 (Tatsuo Ishii) + <p> + Coverity の報告 #1111442 によります。 + </p> +</li> + +<li> + 長らく放置されていた pgool.init の stop/restart のバグを修正しました。(Yugo Nagata) + <p> + 以前は pgpool の停止に pgpool.init は killproc を用いていましたが、これにはいくつか問題がありました。これを、"pgpool -m fast stop" を用いるように修正しました。 + </p> + <p> + Ryan DeShone により提供されたパッチを Yugo Nagata が修正しました。 + </p> + <p> + 詳しくは、[pgpool-hackers: 239][pgpool-hackers: 512] を参照してください。 + </p> +</li> + +<li> + オンラインリカバリの実行時は PostgreSQL の statement_timeout を無効にするようになりました。(Tatsuo Ishii) + <p> + オンラインリカバリは異常に長い時間を要する可能性がある一方、ユーザは statement_timeout を有効にしている可能性があります。これによりオンラインリカバリがキャンセルされるのを防ぐため、リカバリの最中は statement_timeout を無効にするようになりました。 + </p> + <p> + 詳しくは [pgpool-general: 2919] を参照してください。 + </p> +</li> + +<li> + 不適切にセマフォを削除しないよう不必要な pool_shmem_exit() 呼び出しを取り除きました。(Tatsuo Ishii) + <p> + exit_handler はプロセスが親プロセスがどうかをチェックしていますが、子プロセスであった場合にも pool_shmem_exit() が呼ばれることがあり、これにより不適切にセマフォが削除されていました。この関数は親プロセス以外に呼ばれてはなりません。 + </p> + <blockquote> + bug #102 によります。<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=102"> + http://www.pgpool.net/mantisbt/view.php?id=102 + </a> + </blockquote> +</li> + +</ul> + <!-- -------------------------------------------------------------------------------- --> <h2><a name="release3.1.11"></a>3.1.11 (hatsuiboshi) 2014/03/24</h2> <!-- -------------------------------------------------------------------------------- --> @@ -9170,7 +9668,7 @@ autoconf </li> <li> - NULL ポインタの開放を修正しました。(Tatsuo Ishii) + NULL ポインタの解放を修正しました。(Tatsuo Ishii) <p> Coverity 1111384 の報告によります。 </p> @@ -9869,7 +10367,7 @@ md5認証で長いユーザ名を処理する際のバグを修正しました <li>pool_get_insert_table_name() のメモリリークを修正しました。(Tatsuo Ishii) <p> nodeToString() でセッションコンテクストのメモリコンテクストを使ったあと、 - セッション終了までは、メモリを開放していませんでした。 + セッション終了までは、メモリを解放していませんでした。 </p> <p>詳しくはバグトラックをご覧ください。</p> <blockquote> @@ -10401,6 +10899,109 @@ Date: Wed, 05 Oct 2011 15:15:07 -0700 <!-- ================================================================================ --> <hr><a name="release3.0.x"></a> +<!-- -------------------------------------------------------------------------------- --> +<h2><a name="release3.0.16"></a>3.0.16 (umiyameboshi) 2014/09/05</h2> +<!-- -------------------------------------------------------------------------------- --> + +<h3>概要</h3> +<p> +このバージョンは 3.0.15 に対するバグ修正リリースです。 +</p> + +<h3>バグ修正</h3> +<ul> + +<li> + pgpool.spec のタイポを修正しました。(Yugo Nagata) +</li> + +<li> + プライマリバックエンドが存在しない場合に、ワーカー子プロセスが終了と再起動を繰り返すバグを修正しました。(Tatsuo Ishii) + <p> + 問題の同定と修正は Junegunn Choi さんの貢献によります。 + </p> + <p> + 詳しくは、[pgpool-hackers: 471] を参照してください。 + </p> +</li> + +<li> + スマートシャットダウンの実行時には受信用ソケットを閉じるように修正しました。(Tatsuo Ishii) + <p> + スマートシャットダウンが実行された場合でも、pgpool の子プロセスは受信用のポートを開いており、最終的に失敗するにもかからわずクライアントは接続要求を送信可能です。これは時間の無駄であるでけではなく、pgpool のフロントにいるロードバランサによる pgpool の停止の検出を妨げます。 + </p> + <p> + この問題は [pgpool-hackers 474] にて Junegunn Choi によって解析され、パッチが提供されました。これを Tatsuo Ishii が改良し、inet ドメインだけではなく UNIX ドメインのソケットにも対応させました。 + </p> +</li> + +<li> + doc: PostgreSQL の statement_timeout によって、リカバリコマンドが終了させられる可能性を追記しました。(Tatsuo Ishii) +</li> + +<li> + dic: 現在は当てはまらない古い制限事項を削除しました。(Tatsuo Ishii) +</li> + +<li> + text_to_lsn() 関数の返却値型を修正しました。(Yugo Nagata) + <p> + コンパイル時の警告の原因となっていました。 + </p> +</li> + +<li> + デーモン化した際にファイル識別子が閉じられていなかったのを修正しました。(Tatsuo Ishii) + <p> + Coverity の報告 #1111471 によります。 + </p> +</li> + +<li> + メモリリークを修正しました。 (Tatsuo Ishii) + <p> + Coverity の報告 #1111442 によります。 + </p> +</li> + +<li> + 長らく放置されていた pgool.init の stop/restart のバグを修正しました。(Yugo Nagata) + <p> + 以前は pgpool の停止に pgpool.init は killproc を用いていましたが、これにはいくつか問題がありました。これを、"pgpool -m fast stop" を用いるように修正しました。 + </p> + <p> + Ryan DeShone により提供されたパッチを Yugo Nagata が修正しました。 + </p> + <p> + 詳しくは、[pgpool-hackers: 239][pgpool-hackers: 512] を参照してください。 + </p> +</li> + +<li> + オンラインリカバリの実行時は PostgreSQL の statement_timeout を無効にするようになりました。(Tatsuo Ishii) + <p> + オンラインリカバリは異常に長い時間を要する可能性がある一方、ユーザは statement_timeout を有効にしている可能性があります。これによりオンラインリカバリがキャンセルされるのを防ぐため、リカバリの最中は statement_timeout を無効にするようになりました。 + </p> + <p> + 詳しくは [pgpool-general: 2919] を参照してください。 + </p> +</li> + +<li> + 不適切にセマフォを削除しないよう不必要な pool_shmem_exit() 呼び出しを取り除きました。(Tatsuo Ishii) + <p> + exit_handler はプロセスが親プロセスがどうかをチェックしていますが、子プロセスであった場合にも pool_shmem_exit() が呼ばれることがあり、これにより不適切にセマフォが削除されていました。この関数は親プロセス以外に呼ばれてはなりません。 + </p> + <blockquote> + bug #102 によります。<br /> + <a href="http://www.pgpool.net/mantisbt/view.php?id=102"> + http://www.pgpool.net/mantisbt/view.php?id=102 + </a> + </blockquote> +</li> + +</ul> + <!-- -------------------------------------------------------------------------------- --> <h2><a name="release3.0.15"></a>3.0.15 (umiyameboshi) 2014/03/24</h2> <!-- -------------------------------------------------------------------------------- --> @@ -10470,7 +11071,7 @@ Date: Wed, 05 Oct 2011 15:15:07 -0700 </li> <li> - NULL ポインタの開放を修正しました。(Tatsuo Ishii) + NULL ポインタの解放を修正しました。(Tatsuo Ishii) <p> Coverity 1111384 の報告によります。 </p> @@ -11109,7 +11710,7 @@ md5認証で長いユーザ名を処理する際のバグを修正しました <li>pool_get_insert_table_name() のメモリリークを修正しました。(Tatsuo Ishii) <p> nodeToString() でセッションコンテクストのメモリコンテクストを使ったあと、 - セッション終了までは、メモリを開放していませんでした。 + セッション終了までは、メモリを解放していませんでした。 </p> <p>詳しくはバグトラックをご覧ください。</p> <blockquote> [parent: 865821cd60ad]