[pgpool-hackers: 1388] pgpool-II 3.4.4, 3.3.78 3.2.13, 3.1.16, and 3.0.20 released

Yugo Nagata nagata at sraoss.co.jp
Fri Feb 5 18:03:13 JST 2016


Hi,

Pgpool Global Development Group is pleased to announce the availability
of pgpool-II 3.4.4, 3.3.8, 3.2.13, 3.1.16, and 3.0,20. These are the
latest  stable minor versions of each major versions of pgpool-II.

pgpool-II 3.0.20 is the final release of the 3.0.x. This series has reached
"End of Life", and is no longer maintained and does not receive any updates. 

You can download them from:
http://pgpool.net/mediawiki/index.php/Downloads

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

                        3.4.4 (tataraboshi) 2016/02/05

* Version 3.4.4

    This is a bugfix release against pgpool-II 3.4.3.

    __________________________________________________________________

* Bug fixes

    - doc: Fix misinformation regarding load balancing in docs (Tatsuo Ishii)
      
      In streaming replication mode, DECLARE, FETCH, CLOSE and SHOW are sent
      to primary node only. Pointed out in [pgpool-general-jp: 1378].

    - Issue fsync() when writing pgpool_status (Tatsuo Ishii)
      
      This ensures that pgpool_status is saved to permanent storage and
      allow to survive after system crash.

    - Fix reset query stuck problem (Muhammad Usama)
      
      It is reported that reset query (DISCARD ALL etc.) occasionally does
      not finish and pgpool child remain waiting for reply from the backend
      thus client cannot connect to pgpool (for example bug report #107).
      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 to keep track of the status of frontend socket state and not
      caching the PostgreSQL connection if the connection to frontend was not
      properly terminated.

    - test: Fix false alerm of regression tset 062 (Yugo Nagata)

    - test: Fix broken regression test for native replication (Yugo Nagata)
      
      Test for insert lock didn't work.

    - test: Fix regress test to sleep after pgpool_reload (Yugo Nagata)
      
      Some regression tests modify configuration file and reloads. However,
      sometimes these were not applied to pgpool just after reloading.

    - Fix inconsistency of sequence values in replication mode (Yugo Nagata)
      
      When a schema name was provided, the table name was quoted wrongly as
      like "public.mytbl" instead of "public"."mytbl". So, pool_regclass
      and to_regclass couldn't find right talbe oid and insert lock was
      never executed. This caused inconsistency between DB nodes.

    - test: Fix complication error and segfault of timestamp rewrite test
      (Yugo Nagata)

    - test: Add timestamp-rewrite unit test to regression test suite (Yugo Nagata)

    - doc: Fix untranslated sentence in Japanese document (Yugo Nagata)

    - Fix ancient bug of pool_push() and friends (Tatsuo Ishii)
      
      It allocates buffer using realloc and uses the pointer
      returned. However it does the pointer calculation *before* realloc
      gets called. So the calculation uses the old pointer value, which
      causes various problems including segfault later.
      
      Also there were other problems with it. The buffer pointer and buffer
      size variable is not initialized. The buffer is not freed by
      pool_close. Typo in debugging message (3.4 or later only). They are
      fixed as well.

    - doc: Fix wrong description about log_standby_delay in the document
      (Yugo Nagata)

    - doc: Add caution about JDBC driver version regarding
      app_name_redirect_preference_list (Tatsuo Ishii)

    - Fix hang problem reported in bug#145 (Tatsuo Ishii)
      
      The problem occurs when all the condition below are met:
      
      1) pgpool-II 3.4 or later
      2) streaming replication mode
      3) primary node is also load balance node
      4) extended protocol is used
      5) client_idle_limit reached

    - test: Fix regression test 065 (Tatsuo Ishii)
      
      The path to JDBC driver was explicitly defined. This is wrong. This
      should be inherited from JDBC_DRIVER environment variable.

    - test: Fix possible hang-up of regression test 054.postgres_fdw (Yugo Nagata)

    - test: Add option to regress.sh and pgpool_setup for unix domain socket
      directory (Yugo Nagata)

    - doc: Add missing descriptions about default values to documents (Yugo Nagata)

    - test: Fix a bug of regress.sh option handling (Yugo Nagata)

    - test: Fix regression test 055.backend_all_down to use PGSOCKET_DIR for
      PostgreSQL rhel7 rpm (Yugo Nagata)

    - Fix reset query stuck problem (Muhammad Usama)
      
      The issue is already fixed in older branches and this fix adopts the
      same solution used by 3.3 series, i.e. closing the backend connection
      when client idle limit is reached.

    - Fix bug with "SET TRANSACTION READ ONLY" (Tatsuo Ishii)
      
      Pgpool-II remembers that non read only queries (including SET) were
      executed in an explicit transaction and adds a "writing transaction"
      mark to the transaction. The mark affects the query routing behavior
      of pgpool-II while running in streaming replication mode. Pgpool-II
      starts sending queries to the primary after the mark is set. Because
      the effect of writing queries may appear on standbys after some delay
      in streaming replication mode, it is safer to route read queries to
      the primary after the mark is set.
      
      However there's oversight here. "SET TRANSACTION READ ONLY" does no
      data modification and should be treated as an exception.
      
      Per bug #157.

    - test: Fix to use timeout command to handle time out of regress test 062
      (Yugo Nagata)

    - Fix to show wrong error (Tatsuo Ishii)
      
      connect_with_timeout() does not show proper error info when
      getsockopt(SO_ERROR) reports an error. Pointed out in bug #159.

    - test: Add missing \n in help messages (Yugo Nagata)

    - Fixing the logic issue in get_backends_status() function (Muhammad Usama)
      
      get_backends_status () function counts the number of current valid and down
      backend nodes. The function assumed that the node was also invalid when its
      connection status was down. However, that is not always right.

    - test: Fix regression test 003.failover for rhel7 postgresql rpm (Yugo Nagata)
      
      The expected result of 'show pool_nodes' is fixed to use
      PGSOCKET_DIR in hostname column.

    - Fix white/black_memqcache_table_list not require quotaion (Yugo Nagata)
      
      The tables and schemas name specified in *_memqcache_table_list
      were needed to be quoted by double quotation.
      
      Patch contributed by Dang Minh Huong.
      Per [pgpool-hackers: 1323]

    - Fix FATAL error with reloading (Tatsuo Ishii)
      
      While reloading pgpool.conf, the number of DB nodes is tentatively set
      to 0, then counted up until reaching to the actual number of backends
      by the pgpool main process. Unfortunately the variable was on the
      shared memory and it confused pgpool child process when they were using
      the variable and this caused FATAL error.
      
      Per bug #156 report by harukat.

    - test: Add some tests for white/black_memqcache_table_list to regression
      test 006.memqcache (Yugo Nagata)

    - Fix reset query stuck problem (Muhammad Usama, Tatsuo Ishii)
      
      When pool_read fails to read from frontend or pool_flush fails to
      write to the frontend, report FRONTEND_ERROR, rather than ERROR to
      disconnect and terminate pgpool child process, to prevent the query
      stuck problem.

    - test: Fix regression test 008 & 009 failure in debug mode (Yugo Nagata)

    - Fix performance degradation while using IPv6 (Muhammad Usama)
      
      Per bug #165.

    - Add some warning messages for wd_authkey hash calculation failure
      (Yugo Nagata)
      
      Sometimes wd_authkey calculation fails for some reason other than
      authkey mismatch. The additional messages make these distingushable
      for each other.

    - test: Fix regression test to check timeout of each test (Yugo Nagata)

    - test: Allow timeout value to be specified by the command option (Yugo Nagata)

    - Fix bugs with data modifying WITH clause. (Tatsuo Ishii)
      
      pgpool-II did not recognize the data modifying WITH clause despite
      pgpool-II 3.3 or after has SQL parser which recognizes it. The bug has
      been fixed in pgpool-II 3.5 (having PostgreSQL 9.5 parser), and the fix
      is back ported to pgpool-II 3.3 and 3.4.
      
      Per bug #153.

    - Fix segfalut that occurs when function is used in FROM clause (Yugo Nagata)
      
      PRPARE statements in streaming-reaplication mode and INSERT/UPDATE
      with SELECT in native-replication mode were affected. For example:
      
      - prepare p as select * from generate_series(1,1);
      - insert into tbl select now(), * from generate_series(1,1);

    - Fix broken arping_cmd configuration check(Muhammad Usama)
      
      wd_chk_setuid() function was bailing out with the NOTICE message as soon
      as it finds the setuid bit is not set on any configured network command
      and was ignoring the rest of configurations.
      
      Per bug #139.

    - doc: Add restriction about starting multiple pgpool simultaneously
      (Yugo Nagata)

    - Fix to use saved errno for erreport instead of the direct value
      (Yugo Nagata)
      
      Some system calls are called in errmsg() and errhint(), and
      it isn't safe to pass errno directly as an argument. This caused
      the confusable log message as below.
      
      DETAIL: connect() reports failure "Success"

    - Fix a in-memory query cache bug (Tatsuo Ishii)
      
      If extended query protocol is used and a bind/execute message arrives
      which uses a statement created by prior parse message, the temp_cache
      is not initialized by a parse messages. Thus messages are added to pre
      existing temp cache buffer which causes the trouble, that is, when the
      cached result returns, Data Row message and Command Complete message
      appeared twice.
      
      Per by bug #152.

    - Fix a compile issue on freebsd, added missing include files (Muhammad Usama)

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

                        3.3.8 (tokakiboshi) 2016/02/05

* Version 3.3.8

    This is a bugfix release against pgpool-II 3.3.7.

    __________________________________________________________________

* Bug fixes

    - doc: Fix misinformation regarding load balancing in docs (Tatsuo Ishii)
      
      In streaming replication mode, DECLARE, FETCH, CLOSE and SHOW are sent
      to primary node only. Pointed out in [pgpool-general-jp: 1378].

    - Issue fsync() when writing pgpool_status (Tatsuo Ishii)
      
      This ensures that pgpool_status is saved to permanent storage and
      allow to survive after system crash.

    - test: Fix false alerm of regression tset 062 (Yugo Nagata)

    - test: Fix broken regression test for native replication (Yugo Nagata)
      
      Test for insert lock didn't work.

    - test: Fix regress test to sleep after pgpool_reload (Yugo Nagata)
      
      Some regression tests modify configuration file and reloads. However,
      sometimes these were not applied to pgpool just after reloading.

    - Fix inconsistency of sequence values in replication mode (Yugo Nagata)
      
      When a schema name was provided, the table name was quoted wrongly as
      like "public.mytbl" instead of "public"."mytbl". So, pool_regclass
      and to_regclass couldn't find right talbe oid and insert lock was
      never executed. This caused inconsistency between DB nodes.

    - test: Fix complication error and segfault of timestamp rewrite test
      (Yugo Nagata)

    - test: Add timestamp-rewrite unit test to regression test suite (Yugo Nagata)

    - Fix ancient bug of pool_push() and friends (Tatsuo Ishii)
      
      It allocates buffer using realloc and uses the pointer
      returned. However it does the pointer calculation *before* realloc
      gets called. So the calculation uses the old pointer value, which
      causes various problems including segfault later.
      
      Also there were other problems with it. The buffer pointer and buffer
      size variable is not initialized. The buffer is not freed by
      pool_close. Typo in debugging message (3.4 or later only). They are
      fixed as well.

    - doc: Fix wrong description about log_standby_delay in the document
      (Yugo Nagata)

    - test: Fix regression test 065 (Tatsuo Ishii)
      
      The path to JDBC driver was explicitly defined. This is wrong. This
      should be inherited from JDBC_DRIVER environment variable.

    - test: Add option to regress.sh and pgpool_setup for unix domain socket
      directory (Yugo Nagata)

    - doc: Add missing descriptions about default values to documents (Yugo Nagata)

    - test: Fix a bug of regress.sh option handling (Yugo Nagata)

    - test: Fix regression test 055.backend_all_down to use PGSOCKET_DIR for
      PostgreSQL rhel7 rpm (Yugo Nagata)

    - Fix bug with "SET TRANSACTION READ ONLY" (Tatsuo Ishii)
      
      Pgpool-II remembers that non read only queries (including SET) were
      executed in an explicit transaction and adds a "writing transaction"
      mark to the transaction. The mark affects the query routing behavior
      of pgpool-II while running in streaming replication mode. Pgpool-II
      starts sending queries to the primary after the mark is set. Because
      the effect of writing queries may appear on standbys after some delay
      in streaming replication mode, it is safer to route read queries to
      the primary after the mark is set.
      
      However there's oversight here. "SET TRANSACTION READ ONLY" does no
      data modification and should be treated as an exception.
      
      Per bug #157.

    - test: Fix to use timeout command to handle time out of regress test 062
      (Yugo Nagata)

    - test: Add missing \n in help messages (Yugo Nagata)

    - test: Fix regression test 003.failover for rhel7 postgresql rpm (Yugo Nagata)
      
      The expected result of 'show pool_nodes' is fixed to use
      PGSOCKET_DIR in hostname column.

    - Fix white/black_memqcache_table_list not require quotaion (Yugo Nagata)
      
      The tables and schemas name specified in *_memqcache_table_list
      were needed to be quoted by double quotation.
      
      Patch contributed by Dang Minh Huong.
      Per [pgpool-hackers: 1323]

    - Fix FATAL error with reloading (Tatsuo Ishii)
      
      While reloading pgpool.conf, the number of DB nodes is tentatively set
      to 0, then counted up until reaching to the actual number of backends
      by the pgpool main process. Unfortunately the variable was on the
      shared memory and it confused pgpool child process when they were using
      the variable and this caused FATAL error.
      
      Per bug #156 report by harukat.

    - test: Add some tests for white/black_memqcache_table_list to regression
      test 006.memqcache (Yugo Nagata)

    - Add some warning messages for wd_authkey hash calculation failure
      (Yugo Nagata)
      
      Sometimes wd_authkey calculation fails for some reason other than
      authkey mismatch. The additional messages make these distingushable
      for each other.

    - test: Fix regression test to check timeout of each test (Yugo Nagata)

    - test: Allow timeout value to be specified by the command option (Yugo Nagata)

    - Fix bugs with data modifying WITH clause. (Tatsuo Ishii)
      
      pgpool-II did not recognize the data modifying WITH clause despite
      pgpool-II 3.3 or after has SQL parser which recognizes it. The bug has
      been fixed in pgpool-II 3.5 (having PostgreSQL 9.5 parser), and the fix
      is back ported to pgpool-II 3.3 and 3.4.
      
      Per bug #153.

    - Fix broken arping_cmd configuration check(Muhammad Usama)
      
      wd_chk_setuid() function was bailing out with the NOTICE message as soon
      as it finds the setuid bit is not set on any configured network command
      and was ignoring the rest of configurations.
      
      Per bug #139.

    - doc: Add restriction about starting multiple pgpool simultaneously
      (Yugo Nagata)

    - Fix a in-memory query cache bug (Tatsuo Ishii)
      
      If extended query protocol is used and a bind/execute message arrives
      which uses a statement created by prior parse message, the temp_cache
      is not initialized by a parse messages. Thus messages are added to pre
      existing temp cache buffer which causes the trouble, that is, when the
      cached result returns, Data Row message and Command Complete message
      appeared twice.
      
      Per by bug #152.

    - Ignore close statement/portal request if they do not exist (Tatsuo Ishii)
      
      In this case just returns a close complete message to client.
      This is a back port of the following commit from pgpool-II 3.4:
      
      1a37e1c35bd8b6f10f524693bbcb7b51f73b4bf0

    - test: Fix port numbers in expected result of show pool_nodes (Yugo Nagata)

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

                        3.2.13 (namameboshi) 2016/02/05

* Version 3.2.13

    This is a bugfix release against pgpool-II 3.2.12.

    __________________________________________________________________

* Bug fixes

    - doc: Fix misinformation regarding load balancing in docs (Tatsuo Ishii)
      
      In streaming replication mode, DECLARE, FETCH, CLOSE and SHOW are sent
      to primary node only. Pointed out in [pgpool-general-jp: 1378].

    - Issue fsync() when writing pgpool_status (Tatsuo Ishii)
      
      This ensures that pgpool_status is saved to permanent storage and
      allow to survive after system crash.

    - Fix ancient bug of pool_push() and friends (Tatsuo Ishii)
      
      It allocates buffer using realloc and uses the pointer
      returned. However it does the pointer calculation *before* realloc
      gets called. So the calculation uses the old pointer value, which
      causes various problems including segfault later.
      
      Also there were other problems with it. The buffer pointer and buffer
      size variable is not initialized. The buffer is not freed by
      pool_close. Typo in debugging message (3.4 or later only). They are
      fixed as well.

    - doc: Fix wrong description about log_standby_delay in the document
      (Yugo Nagata)

    - Fix bug with "SET TRANSACTION READ ONLY" (Tatsuo Ishii)
      
      Pgpool-II remembers that non read only queries (including SET) were
      executed in an explicit transaction and adds a "writing transaction"
      mark to the transaction. The mark affects the query routing behavior
      of pgpool-II while running in streaming replication mode. Pgpool-II
      starts sending queries to the primary after the mark is set. Because
      the effect of writing queries may appear on standbys after some delay
      in streaming replication mode, it is safer to route read queries to
      the primary after the mark is set.
      
      However there's oversight here. "SET TRANSACTION READ ONLY" does no
      data modification and should be treated as an exception.
      
      Per bug #157.

    - Fix FATAL error with reloading (Tatsuo Ishii)
      
      While reloading pgpool.conf, the number of DB nodes is tentatively set
      to 0, then counted up until reaching to the actual number of backends
      by the pgpool main process. Unfortunately the variable was on the
      shared memory and it confused pgpool child process when they were using
      the variable and this caused FATAL error.
      
      Per bug #156 report by harukat.

    - doc: Add restriction about starting multiple pgpool simultaneously
      (Yugo Nagata)

    - Fix a in-memory query cache bug (Tatsuo Ishii)
      
      If extended query protocol is used and a bind/execute message arrives
      which uses a statement created by prior parse message, the temp_cache
      is not initialized by a parse messages. Thus messages are added to pre
      existing temp cache buffer which causes the trouble, that is, when the
      cached result returns, Data Row message and Command Complete message
      appeared twice.
      
      Per by bug #152.

    - Ignore close statement/portal request if they do not exist (Tatsuo Ishii)
      
      In this case just returns a close complete message to client.
      This is a back port of the following commit from pgpool-II 3.4:
      
      1a37e1c35bd8b6f10f524693bbcb7b51f73b4bf0

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

                        3.1.16 (hatsuiboshi) 2016/02/05

* Version 3.1.16

    This is a bugfix release against pgpool-II 3.1.15.

    __________________________________________________________________

* Bug fixes

    - doc: Fix misinformation regarding load balancing in docs (Tatsuo Ishii)
      
      In streaming replication mode, DECLARE, FETCH, CLOSE and SHOW are sent
      to primary node only. Pointed out in [pgpool-general-jp: 1378].

    - Issue fsync() when writing pgpool_status (Tatsuo Ishii)
      
      This ensures that pgpool_status is saved to permanent storage and
      allow to survive after system crash.

    - doc: Fix wrong description about log_standby_delay in the document
      (Yugo Nagata)

    - Fix bug with "SET TRANSACTION READ ONLY" (Tatsuo Ishii)
      
      Pgpool-II remembers that non read only queries (including SET) were
      executed in an explicit transaction and adds a "writing transaction"
      mark to the transaction. The mark affects the query routing behavior
      of pgpool-II while running in streaming replication mode. Pgpool-II
      starts sending queries to the primary after the mark is set. Because
      the effect of writing queries may appear on standbys after some delay
      in streaming replication mode, it is safer to route read queries to
      the primary after the mark is set.
      
      However there's oversight here. "SET TRANSACTION READ ONLY" does no
      data modification and should be treated as an exception.
      
      Per bug #157.

    - Fix FATAL error with reloading (Tatsuo Ishii)
      
      While reloading pgpool.conf, the number of DB nodes is tentatively set
      to 0, then counted up until reaching to the actual number of backends
      by the pgpool main process. Unfortunately the variable was on the
      shared memory and it confused pgpool child process when they were using
      the variable and this caused FATAL error.
      
      Per bug #156 report by harukat.

    - Ignore close statement/portal request if they do not exist (Tatsuo Ishii)
      
      In this case just returns a close complete message to client.
      This is a back port of the following commit from pgpool-II 3.4:
      
      1a37e1c35bd8b6f10f524693bbcb7b51f73b4bf0

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

                        3.0.20 (umiyameboshi) 2016/02/05

* Version 3.0.20

    This is a bugfix release against pgpool-II 3.0.19.

    This is the final release of the series. pgpool-II 3.0 has reached
    End of Life, and is no longer maintained and does not receive any
    updates.

    __________________________________________________________________

* Bug fixes

    - doc: Fix misinformation regarding load balancing in docs (Tatsuo Ishii)
      
      In streaming replication mode, DECLARE, FETCH, CLOSE and SHOW are sent
      to primary node only. Pointed out in [pgpool-general-jp: 1378].

    - Issue fsync() when writing pgpool_status (Tatsuo Ishii)
      
      This ensures that pgpool_status is saved to permanent storage and
      allow to survive after system crash.

    - doc: Fix wrong description about log_standby_delay in the document
      (Yugo Nagata)

    - Fix bug with "SET TRANSACTION READ ONLY" (Tatsuo Ishii)
      
      Pgpool-II remembers that non read only queries (including SET) were
      executed in an explicit transaction and adds a "writing transaction"
      mark to the transaction. The mark affects the query routing behavior
      of pgpool-II while running in streaming replication mode. Pgpool-II
      starts sending queries to the primary after the mark is set. Because
      the effect of writing queries may appear on standbys after some delay
      in streaming replication mode, it is safer to route read queries to
      the primary after the mark is set.
      
      However there's oversight here. "SET TRANSACTION READ ONLY" does no
      data modification and should be treated as an exception.
      
      Per bug #157.

    - Fix FATAL error with reloading (Tatsuo Ishii)
      
      While reloading pgpool.conf, the number of DB nodes is tentatively set
      to 0, then counted up until reaching to the actual number of backends
      by the pgpool main process. Unfortunately the variable was on the
      shared memory and it confused pgpool child process when they were using
      the variable and this caused FATAL error.
      
      Per bug #156 report by harukat.

    - Ignore close statement/portal request if they do not exist (Tatsuo Ishii)
      
      In this case just returns a close complete message to client.
      This is a back port of the following commit from pgpool-II 3.4:
      
      1a37e1c35bd8b6f10f524693bbcb7b51f73b4bf0

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


-- 
Yugo Nagata <nagata at sraoss.co.jp>


More information about the pgpool-hackers mailing list