[pgpool-general: 866] pgpool-II 3.1.4, 3.0.8, 2.3.4, 2.2.8 officially released (Minor version up)

Nozomi Anzai anzai at sraoss.co.jp
Mon Aug 6 18:00:24 JST 2012


pgpool Gobal Development Group is pleased to announce the availability
of pgpool-II 3.1.4, 3.0.8, 2.3.4, 2.2.8, the latest stable versions of
each major series.

# We maintain 3.2, 3.1 and 3.0, but relased the newer minor versions of
# 2.3 and 2.2 because of users' requests.

You can download them here:
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

This is a bugfix release against pgpool-II 3.1.3.

* General

- Adopt PostgreSQL 9.2. (Tatsuo Ishii)

* Bug fixes

- Fix pool_send_and_wait() to send or not to send COMMIT / ABORT
  depending on the transaction state on each node. (Tatsuo Ishii)

  It is possible that only primary is in an explicit transaction but
  standby is not in it if multi statement query has been sent.
  Per bug report [pgpool-general-jp: 1049].

- Fix load balance in Solaris. (Tatsuo Ishii)

  Problem is, random() in using random() in Solaris results in strange 
  load balancing calculation.
  Use srand()/rand() instead although they produce lesser quality random
  Problem reported at [pgpool-general: 396].

    [pgpool-general: 396] strange load balancing issue in Solaris
    http://www.pgpool.net/pipermail/pgpool-general/2012-April/000397.html

- Add params to the result of "SHOW pool_status": backend_data_directory,
  ssl_ca_cert, ssl_ca_cert_dir. (Nozomi Anzai)

- Fix segfault of pcp_systemdb_info not in parallel mode. (Nozomi Anzai)

- Fix "unnamed prepared statment does not exist" error. (Tatsuo Ishii)

  This is caused by pgpool's internal query, which breaks client's
  unnamed statements. To fix this, if extended query is used, named
  statement/portal for internal are used for internal query.

- Fix hangup when query conflict occurs in Hot-Standby mode.
  (Yugo Nagata)

  Query example to reproduce:

      (S1) BEGIN;
      (S1) SELECT * FROM t;
      (S2) DELETE FROM t;
      (S2) VACUUM t;

- Improve reading and writing pid_file. (Tatsuo Ishii)

- Fix pool_process_query() bug reported in [pgpool-general: 672].
  (Tatsuo Ishii)

  This is caused by the function waits for primary node which does not
  have pending data, while standbys have pending data.

   [pgpool-general: 672] Transaction never finishes
    http://www.pgpool.net/pipermail/pgpool-general/2012-June/000676.html

- Fix wait_for_query_response() not to send param status to frontend if
  frontend is NULL. (Tatsuo Ishii)

  This could happen while processing reset_query_list and occur crash.

- Fix bug with treatment of BEGIN TRANSACTION in master/slave mode.
  (Tatsuo Ishii)

  Original complain is [pgpool-general: 714].
  From 3.1, pgpool-II sends BEGIN.. to all DB nodes. Of course we cannot
  send BEGIN TRANSACTION READ WRITE to standby nodes.
  Problem is, we did not check BEGIN WORK ISOLATION LEVEL SERIALIZABLE;
  and sent to standby nodes. Of course this is wrong, since it's not
  allowed to run transactions in serializable mode on standby nodes.
  So added check for BEGIN WORK ISOLATION LEVEL SERIALIZABLE case.

    [pgpool-general: 714]
    Load Balancing / Streaming Replication / Isolation Level serializable
    http://www.pgpool.net/pipermail/pgpool-general/2012-July/000719.html

- Fix send_to_where() to send the query to only primary if the it is like
  SET TRANSACTION ISOLATION LEVELSERIALIZABLE etc. (Tatsuo Ishii)

  Case in streaming replication mode. Previously, it was sent to not only
  primary but also to standby and of course this causes an error.
  Similar SQLs are:

   SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL
   SERIALIZABLE or SET transaction_isolation TO 'serializable'
   SET default_transaction_isolation TO 'serializable'

  Original complain is [pgpool-general: 715].

    [pgpool-general: 715]
    Re: Load Balancing / Streaming Replication / Isolation Level
    serializable
    http://www.pgpool.net/pipermail/pgpool-general/2012-July/000720.html


================================================================================
3.0.8 (2012/08/06)
================================================================================

http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V3_0_STABLE

* General

- Adopt PostgreSQL 9.2. (Tatsuo Ishii)

* Bug fixes

- Fix load balance in Solaris. (Tatsuo Ishii)

  Problem is, random() in using random() in Solaris results in strange
  load balancing calculation.
  Use srand()/rand() instead although they produce lesser quality random
  Problem reported at [pgpool-general: 396]. 

    [pgpool-general: 396] strange load balancing issue in Solaris
    http://www.pgpool.net/pipermail/pgpool-general/2012-April/000397.html

- Fix segfault of pcp_systemdb_info not in parallel mode. (Nozomi Anzai)

- Fix "unnamed prepared statment does not exist" error. (Tatsuo Ishii)

  This is caused by pgpool's internal query, which breaks client's
  unnamed statements. To fix this, if extended query is used, named 
  statement/portal for internal are used for internal query.

- Fix is_system_catalog(). Its relcach was accidently defined as
  "session local". (Tatsuo Ishii)

- Improve reading and writing pid_file. (Tatsuo Ishii)

- Fix pool_process_query() bug reported in [pgpool-general: 672]. 
  (Tatsuo Ishii)

  This is caused by the function waits for primary node which does not
  have pending data, while standbys have pending data. 

    [pgpool-general: 672] Transaction never finishes
    http://www.pgpool.net/pipermail/pgpool-general/2012-June/000676.html

- Fix wait_for_query_response() not to send param status to frontend if
  frontend is NULL. (Tatsuo Ishii)

  This could happen while processing reset_query_list and occur crash.


================================================================================
2.3.4 (2012/08/06)
================================================================================

http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V2_3_STABLE

- Fix do_error_execute_command() so that it discards responses from
  backend until ErrorResponse received. (Toshihiro Kitagawa)

  Note that we need to preserve non-error responses (i.e. ReadyForQuery)
  and put back them using pool_unread().
  Otherwise, ReadyForQuery response of DEALLOCATE. This could happen if
  PHP PDO used.

- Fix SimpleForwardToFrontend() so that it reset select_in_transaction
  flag and execute_select flag when bind error occurred while executing
  SELECT. (Toshihiro Kitagawa)

- Fix SSL connection sometimes hung if lots of data read from backend.
  This is caused by the buffering in OpenSSL layer. To fix the problem,
  (Tatsuo Ishii)

  we check the buffer has any pending data by using SSL_pending() before
  calling select(2).
  See thread [Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode for
  more details.

- Fix bug with pcp_check_fd()'s timeout handling. (Tatsuo Ishii)

  Per erboles.
    Subject: [Pgpool-general] question about pcp_check_fd
    Date: Sun, 23 May 2010 18:21:41 -0500
    To: pgpool <pgpool-general ¡÷ pgfoundry.org>

- Do not force replication of DEALLOCATE if operated in master/slave mode.
  Reported by Jan Kantert. (Toshihiro Kitagawa)

  See:
    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
  For more details.

- Make timestamp rewriting schema aware. (Tatsuo Ishii)

- Do not rewrite statement which accesses columns having now() etc. as the
  default value but the data type are not timestamp etc. (Tatsuo Ishii)

  Otherwise we have an error in DMLS. See:
    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)
  For more details.

- Fix insert_lock to be schema aware. (Tatsuo Ishii)

- Fix long standing bug with timestamp rewriting against array and complex
  types.  (Tatsuo Ishii)

  Failed examples are:

    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;

  Patch provided by Akio Ishida.

- Fix buffer overrun problem when pcp password is longer than 32.
  (Tatsuo Ishii)

- Fix wait_for_query_response() not to send param status to frontend if
  frontend is NULL. This could happen while processing reset_query_list.
  (Tatsuo Ishii)


================================================================================
2.2.8 (2012/08/06)
================================================================================

http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V2_2_STABLE

- Fix do_error_execute_command() so that it discards responses from
  backend until ErrorResponse received. (Toshihiro Kitagawa)

  Note that we need to preserve non-error responses (i.e. ReadyForQuery)
  and put back them using pool_unread().
  Otherwise, ReadyForQuery response of DEALLOCATE. This could happen if
  PHP PDO used.

- Fix SimpleForwardToFrontend() so that it reset select_in_transaction
  flag and execute_select flag when bind error occurred while executing
  SELECT. (Toshihiro Kitagawa)

- Fix bug with pcp_check_fd()'s timeout handling. (Tatsuo Ishii)

  Per erboles.
    Subject: [Pgpool-general] question about pcp_check_fd
    Date: Sun, 23 May 2010 18:21:41 -0500
    To: pgpool <pgpool-general ¡÷ pgfoundry.org>

- Fix buffer overrun problem when pcp password is longer than 32.
  (Tatsuo Ishii)

- Fix wait_for_query_response() not to send param status to frontend if
  frontend is NULL. This could happen while processing reset_query_list.
  (Tatsuo Ishii)

================================================================================

-- 
Nozomi Anzai
SRA OSS, Inc. Japan


More information about the pgpool-general mailing list