[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 メーリングリストの案内