[pgpool-general-jp: 1082] pgpool-II 3.1.4, 3.0.8, 2.3.4, 2.2.8 officially released (Minor version up)
Nozomi Anzai
anzai @ sraoss.co.jp
2012年 8月 6日 (月) 18:06:27 JST
安齋です。
pgpool-II 3.1.4, 3.0.8, 2.3.4, 2.2.8 をリリースしましたのでお知らせいたしま
す。これらは、各メジャーバージョンの最新安定版です。
# 現在 保守として更新しているのは 3.2, 3.1, 3.0 ですが、ユーザからの要望が
# あったため、2.3 と 2.2 の最新版もリリースします。
以下からダウンロードすることができます。
http://pgpool.net/mediawiki/index.php/Downloads
================================================================================
3.1.4 (2012/08/06)
================================================================================
http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V3_1_STABLE
このバージョンは3.1.3に対するバグ修正リリースです。
また、PostgreSQL 9.2 に対応しました。
* バグ修正
- 各ノードにおいて、トランザクション状態によって COMMIT / ABORT するかどう
かを判定できるように、 pool_send_and_wait() を修正しました。
(Tatsuo Ishii)
- マルチステートメントが送信されたとき、明示的なトランザクション内にある
プライマリか、明示的なトランザクション内でないスタンバイで発生する可能性
がありました。
これは、[pgpool-general-jp: 1049] で報告されました。
Subject: [pgpool-general-jp: 1049] COMMITでエラー
From: 稲村暢亮
Date: Mon, 30 Apr 2012 13:48:48 +0900
- Solaris でのロードバランスを修正しました。(Tatsuo Ishii)
Solaris での random() 関数の仕様のために問題があったため、rand() に変更し
ました。
この事象は [pgpool-general: 396] で報告されました。
[pgpool-general: 396] strange load balancing issue in Solaris
From: Aravinth
Date: Sat, 28 Apr 2012 07:26:58 +0530
- SHOW pool_status の出力結果に、 backend_data_directory, ssl_ca_cert,
ssl_ca_cert_dir がなかったので追加しました。(Nozomi Anzai)
- パラレルモードでないとき、pcp_systemdb_info コマンドが segfault してたの
を修正しました。 (Nozomi Anzai)
- "unnamed prepared statment does not exist" というエラーが出るのを修正しま
した。(Tatsuo Ishii)
このエラーは pgpool が内部的に発行しているクエリで発生し、 クライアント
が発行する unnamed ステートメントを破壊していました。
- 拡張問い合わせクエリが実行されたときには、内部的に発行するクエリのステー
トメントとポータルに 名前をつけるようにしました。ホットスタンバイモード
でクエリ衝突が起きたときにハングアップするのを修正しました。(Yugo Nagata)
これは、以下の手順で再現します。
(S1) BEGIN;
(S1) SELECT * FROM t;
(S2) DELETE FROM t;
(S2) VACUUM t;
- pid ファイルの読み書きを改善しました。(Tatsuo Ishii)
- [pgpool-general: 672] で報告された、process_query() のバグを修正しまし
た。(Tatsuo Ishii)
プライマリでは処理するデータがなく スタンバイにはある状態のときに、 プラ
イマリの処理を待ってしまうことがありました。
Subject: [pgpool-general: 672] Transaction never finishes
From: Luiz Pasqual
Date: Thu, 28 Jun 2012 09:55:23 -0300
- wait_for_query_response() が、frontend がないときには何もしないように修正
しました。(Tatsuo Ishii)
バックエンドをリセットする reset_query_list のクエリを実行に 時間がかかっ
たときに発生する可能性があり、またクラッシュすることがありました。
- マスタ・スレーブモードでの BEGIN TRANSACTION の扱いを修正しました。
(Tatsuo Ishii)
これは [pgpool-general: 714] で報告されました。
3.1 以降、BEGIN TRANSACTION をすべてのノードに送るようにしました。
PostgreSQL の仕様では、スタンバイノードには BEGIN TRANSACTION READ WRITE
を送ることはできませんが、 BEGIN WORK ISOLATION LEVEL SERIALIZABLE につい
てチェックしておらず、スタンバイノードに送信していました。
もちろんこれは誤りで、スタンバイノードが SERIALIZABLE モードになることは
許されていません。
そのため、BEGIN WORK ISOLATION LEVEL SERIALIZABLE をチェックするようにし
ました。
Subject: [pgpool-general: 714] Load Balancing / Streaming
Replication / Isolation Level serializable
From: Philip Hofstetter
Date: Wed, 11 Jul 2012 17:04:26 +0200
- SET TRANSACTION ISOLATION LEVELSERIALIZABLE などのクエリはプライマリのみ
に送るよう send_to_where() を修正しました。(Tatsuo Ishii)
マスタ・スレーブモードで、以前はこのクエリはプライマリだけではなくスタン
バイにも送られていましたが、 もちろんこれはエラーとなります。同じようなク
エリとして以下のものがあります。
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET transaction_isolation TO 'serializable'
SET default_transaction_isolation TO 'serializable'
これは [pgpool-general: 715] で報告されました。
Subject: [pgpool-general: 715] Re: Load Balancing / Streaming
Replication / Isolation Level serializable
From: Tastuo Ishii
Date: Thu, 12 Jul 2012 00:16:58 +0900
================================================================================
3.0.8 (2012/08/06)
================================================================================
http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V3_0_STABLE
このバージョンは 3.0.7 に対するバグ修正リリースです。
また、PostgreSQL 9.2 に対応しました。
* バグ修正
- Solaris でのロードバランスを修正しました。(Tatsuo Ishii)
Solaris での random() 関数の仕様のために問題があったため、rand() に変更し
ました。
この事象は [pgpool-general: 396] で報告されました。
[pgpool-general: 396] strange load balancing issue in Solaris
From: Aravinth
Date: Sat, 28 Apr 2012 07:26:58 +0530
- パラレルモードでないとき、pcp_systemdb_info コマンドが segfault してたの
を修正しました。 (Nozomi Anzai)
- "unnamed prepared statment does not exist" というエラーが出るのを修正しま
した。(Tatsuo Ishii)
このエラーは pgpool が内部的に発行しているクエリで発生し、 クライアント
が発行する unnamed ステートメントを破壊していました。
- pid ファイルの読み書きを改善しました。(Tatsuo Ishii)
- [pgpool-general: 672] で報告された、process_query() のバグを修正しまし
た。(Tatsuo Ishii)
プライマリでは処理するデータがなく スタンバイにはある状態のときに、 プラ
イマリの処理を待ってしまうことがありました。
Subject: [pgpool-general: 672] Transaction never finishes
From: Luiz Pasqual
Date: Thu, 28 Jun 2012 09:55:23 -0300
- wait_for_query_response() が、frontend がないときには何もしないように修正
しました。(Tatsuo Ishii)
バックエンドをリセットする reset_query_list のクエリの実行に 時間がかかっ
たときに発生する可能性があり、またクラッシュすることがありました。
================================================================================
2.3.4 (2012/08/06)
================================================================================
http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V2_3_STABLE
- do_error_execute_command() が ErrorResponse を受け取るまでバックエンドか
らの結果を見ないように修正しました。 (Toshihiro Kitagawa)
ReadyForQuery のようなエラーでない結果をとっておき、pool_unread() で呼び
出す必要があるためです。
これは PHP PDO を使っているときに起こる可能性がありました。
- SimpleForwardToFrontend() が、SELECT 実行中に bind エラーになったとき、
select_in_transaction フラグと execute_select フラグををリセットするよう
に修正しました。 (Toshihiro Kitagawa)
- バックエンドからたくさんの結果を読み込んでいる間に、SSL 接続がハングする
ことがあるのを修正しました。Tatsuo Ishii)
詳細は、[Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode のスレッド
を参照してください。
- pcp_check_fd() のタイムアウト処理のバグを修正しました。 (Tatsuo Ishii)
これは以下で報告されました。
Subject: [Pgpool-general] question about pcp_check_fd
Date: Sun, 23 May 2010 18:21:41 -0500
To: pgpool <pgpool-general @ pgfoundry.org>
- master/slave モードで稼働中、DEALLOCATE をレプリケーションしないようにし
ました。 (Toshihiro Kitagawa)
これは、以下で Jan Kantert から報告されました。
Subject: [Pgpool-hackers] Problems with PgPool 2.3.3 Prepare /
Deallocation handling in Master/Slave mode
Date: Fri, 28 May 2010 20:59:47 +0200
- タイムスタンプの書き換えで、スキーマを認識するようにしました。
(Tatsuo Ishii)
- now() などデフォルト値にもつがデータ型が timestamp 型でないようなカラムへ
のアクセスがあるステートメントを、書き換えないようにしました。
(Tatsuo Ishii)
そうしていなかったために、DML でエラーになっていました。
Subject: [Pgpool-general] function epoch seems to be causing error
To: pgpool-general @ pgfoundry.org
Date: Mon, 16 Aug 2010 21:48:31 +0000 (UTC)
- insert_lock がスキーマを認識するようになりました。(Tatsuo Ishii)
- 配列型や複合型のカラムのタイムスタンプ書き換えにおける、古くからあるバグ
を修正しました。(Tatsuo Ishii)
例えば、以下の場合に失敗していました。
INSERT INTO r1(col[1], col2.foo) VALUES (1, 2); -- insert_column_item
UPDATE r1 SET col1[1] = 1, col2.foo = 1; -- set_target
PREPARE "p" (int4[]) AS SELECT $1[1]; -- c_expr
SELECT (ARRAY[1,2,3])[1];
SELECT (ARRAY[ARRAY[1]])[1][1];
SELECT ('{1,2,3}'::int[])[1];
SELECT ('{1,2,3}'::int[3])[1];
SELECT r1.col[1], (r1.col1).bar, (r1.col1).* FROM r1; -- columnref
SELECT (r1.col1).baz[1], (r1.col1).baz[1][2] FROM r1;
パッチは Akio Ishida から提供されました。
- pcp パスワードが 32 文字以上のときに、バッファオーバーランするのを修正し
ました。 (Tatsuo Ishii)
- wait_for_query_response() が、frontend がないときには何もしないように修正
しました。(Tatsuo Ishii)
バックエンドをリセットする reset_query_list のクエリを実行に 時間がかかっ
たときに発生する可能性があり、またクラッシュすることがありました。
================================================================================
2.2.8 (2012/08/06)
================================================================================
http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V2_2_STABLE
- do_error_execute_command() が ErrorResponse を受け取るまでバックエンドか
らの結果を見ないように修正しました。 (Toshihiro Kitagawa)
ReadyForQuery のようなエラーでない結果をとっておき、pool_unread() で呼び
出す必要があるためです。
これは PHP PDO を使っているときに起こる可能性がありました。
- SimpleForwardToFrontend() が、SELECT 実行中に bind エラーになったとき、
select_in_transaction フラグと execute_select フラグををリセットするよう
に修正しました。 (Toshihiro Kitagawa)
- pcp_check_fd() のタイムアウト処理のバグを修正しました。 (Tatsuo Ishii)
これは以下で報告されました。
Subject: [Pgpool-general] question about pcp_check_fd
Date: Sun, 23 May 2010 18:21:41 -0500
To: pgpool <pgpool-general @ pgfoundry.org>
- pcp パスワードが 32 文字以上のときに、バッファオーバーランするのを修正し
ました。 (Tatsuo Ishii)
- wait_for_query_response() が、frontend がないときには何もしないように修正
しました。(Tatsuo Ishii)
バックエンドをリセットする reset_query_list のクエリを実行に 時間がかかっ
たときに発生する可能性があり、またクラッシュすることがありました。
(Tatsuo Ishii)
================================================================================
--
Nozomi Anzai
SRA OSS, Inc. Japan
pgpool-general-jp メーリングリストの案内