pgpool-II 3.2.1, 3.1.5, 3.0.9 released - Mailing list pgsql-announce
From | Tatsuo Ishii |
---|---|
Subject | pgpool-II 3.2.1, 3.1.5, 3.0.9 released |
Date | |
Msg-id | 20121012.180344.233038424610959476.t-ishii@sraoss.co.jp Whole thread Raw |
List | pgsql-announce |
pgpool Gobal Development Group is pleased to announce the availability of pgpool-II 3.2.1, 3.1.5, 3.0.9, the latest stable versions of each major series. You can download them here: http://pgpool.net/mediawiki/index.php/Downloads ============================================================================ 3.2.1 ============================================================================ http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V3_2_STABLE - Fix send_cached_messages(). (Tatsuo Ishii) Before it had 8192 bytes fix length buffer for each row data and if data exceeded 8192 bytes, it just crashed. To fix this, eliminate copying raw data which is passed as an argument to buffer and pass the pointer to send_message. - Fix that extended queries failed due to query cache. (Nozomi Anzai) - Fix read_startup_packet(). (Tatsuo Ishii) If packet length is lower than 0, it should have returned immediately. Otherwise it would cause memory allocation error later on. per pgpool-general:886. Also add canceling alarm. [pgpool-general: 886] read_startup_packet: out of memory From: Lonni J Friedman Date: Wed, 8 Aug 2012 10:18:15 -0700 http://www.sraoss.jp/pipermail/pgpool-general/2012-August/000896.html - Fix too watchdog process's aggressively kill other processes when pgpool shuts down. (Tatsuo Ishii) watchdog process calls kill(0,SIG) to kill all processes related to watchdog. Unfortunately this will kill not only watchdog related processes but parent pgpool and even httpd in case when pgpool was invoked from pgpoolAdmin because they are in the same process group. So for now, fix is removing call to the kill() and setpgid() because setpgid() does nothing useful. In the future, we should call setsid() to establish new process group in any case. - Fix query cache to regist such queries that start with "-- comment" or have comments more than one. (Nozomi Anzai) - Fix query cache to ignore multi statement. (Nozomi Anzai) In previous, queries like "SELECT 1;UPDATE..." were cached, too, but it was wrong. - Add a watchdog restriction to documents. (Yugo Nagata) - Add NOTICE message handling to s_do_auth(). (Tatsuo Ishii) Without this, health check responses false alarm and causes failover. per bug track: #25 s_do_auth doesn't handle NoticeResponse (N) message Date: 2012-08-28 03:57 Reporter: singh.gurjeet http://www.pgpool.net/mantisbt/view.php?id=25 - Remove unnecessary/confusing debug log from s_do_auth().(Tatsuo Ishii) - Fix buffer overrun in Execute when memory cache enabled. (Tatsuo Ishii) If one of bind parameter < 0, it was possible to produce more than 2 byte string for "%02X" due to sign extention. Also use snprintf, rather than sprintf to prevent from possible buffer overrun in the future. - Fix long standing memory leak bug with free_select_result() since pgpool-II 2.3 was born in December 2009. (Tatsuo Ishii) Actually this bug only appears when operated in replication mode (triggered by timestamp rewriting process by coincidence). Per bug track #24: #24 Severe memory leak in an OLTP environment Date: 2012-08-28 03:43 Reporter: singh.gurjeet http://www.pgpool.net/mantisbt/view.php?id=24 - Fix typo in cache_reporting(). (Tatsuo Ishii) - Fix inifinit loop in SSL mode. (Tatsuo Ishii) When there's pending data in SSL layer of frontend, pool_process_query() checks pending data in backend. If there's non, it loops again and checks frontend/backend receive buffer by using is_cache_empty(). Unfortunately it first checks pending data in SSL layer of frontend, thus goes to backend data and checks again (infinite loop). The solution is, if there's pending data in SSL layer of frontend and query is not in progress, call ProcessFrontendResponse() to process new request from frontend. - Fix is_system_catalog() to use pgpool_regclass if available. (Tatsuo Ishii) - Fix memory leak in pool_get_insert_table_name(). (Tatsuo Ishii) If session context's memory contex is used for nodeToString(), memory is not freed until session ends. See bug track #24 for more details. #24 Severe memory leak in an OLTP environment Date: 2012-08-28 03:43 Reporter: singh.gurjeet http://www.pgpool.net/mantisbt/view.php?id=24 - Use fcntl(2) rather than flock(2) to lock oid map files. (Tatsuo Ishii) flock(2) is not portable and cannot be used on Solaris. Patch contributed by Ibrar Ahmed. - Fix oversight of get_next_master_node() when operated in raw mode. (Tatsuo Ishii) If master node goes down, it always returned master node id 0. See [pgpool-general: 1039] for more details. [pgpool-general: 1039] Raw failover not working as expected on pgpool-II v3.2.0 From: Quentin White Date: Tue, 25 Sep 2012 07:45:34 +0000 http://www.sraoss.jp/pipermail/pgpool-general/2012-September/001057.html - Fix segfault of do_query(). (Tatsuo Ishii) When memqcache enabled and extended protocol is used, do_query() accesses system catalog and use pool_read2(). Unfortunately parse message packet is given to Parse() and the packet contents is on pool_read2's buffer. Thus do_query could break the packet contents, and it leads to segfault. Solution is, allocate memory and copies the packet contents and pass to Parse(). Note that query context holds query string, which is in the packet as well. So we need to copy it and save the pointer in the query context. We think the problem is not only with Parse() but with other protocol modules. So this fix is not Parse() only, rather for other modules. For this purpose ProcessFrontendResponse() is changed. See bugtrack in detai. #21 pgpool-II 3.2.0 cannot execute sql through jdbc Date: 2012-08-17 16:31 Reporter: elisechiang http://www.pgpool.net/mantisbt/view.php?id=21 - Fix to set unix domain socket path for pgpool PCP communication before setting up signal handlers. (Yugo Nagata) Previously, unlink of the socket in exitting process was failed because the path of the socket was not set. Patch contributed by Gilles Darold [pgpool-hackers: 131] Found bug with watchdog resulting in pgpool segmentation fault From: Gilles Darold Date: Thu, 13 Sep 2012 18:54:42 +0200 http://www.sraoss.jp/pipermail/pgpool-hackers/2012-September/000130.html - Fix to output the message when, in watchdog, ifup/down or arping command does not exist. (Yugo Nagata) - Fix long standing problem with do_query(). (Tatsuo Ishii) When 1) extended protocol used and 2)unnamed portal is used and 3) no explicit transaction is used, user's unnamed portal is removed by Sync message. This is because Sync message closes transaction and unnamed portal is removed. This leads to "portal "" does not exist" error. Fix is, use "Flush" message instead of Sync. Main difference between using Sync and Flush is, Flush does not return Ready for Query message. So do_query() does not return until all expected responses are returned. It seems the order of messages returned from backend is random, and do_query () manages it by using state bits. ============================================================================ 3.1.5, 3.0.9 ============================================================================ http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V3_1_STABLE http://git.postgresql.org/gitweb/?p=pgpool2.git;a=shortlog;h=refs/heads/V3_0_STABLE - Fix read_startup_packet. (Tatsuo Ishii) If packet length is lower than 0, it should have returned immediately. Otherwise it would cause memory allocation error later on. per pgpool-general:886. Also add canceling alarm. [pgpool-general: 886] read_startup_packet: out of memory From: Lonni J Friedman Date: Wed, 8 Aug 2012 10:18:15 -0700 http://www.sraoss.jp/pipermail/pgpool-general/2012-August/000896.html - Add NOTICE message handling to s_do_auth. (Tatsuo Ishii) Without this, health check responses false alarm and causes failover. per bug track: #25 s_do_auth doesn't handle NoticeResponse (N) message Date: 2012-08-28 03:57 Reporter: singh.gurjeet http://www.pgpool.net/mantisbt/view.php?id=25 Also allow to receive ready for query packet *not* right after backend keydata. I'm not sure if this could happen in the real world but the protocol seems to allow this. - Remove unnecessary/confusing debug log from s_do_auth.(Tatsuo Ishii) - Fix inifinit loop in SSL mode. When there's pending data in SSL layer of frontend, pool_process_query() checks pending data in backend. (Tatsuo Ishii) If there's non, it loops again and checks frontend/backend receive buffer by using is_cache_empty(). Unfortunately it first checks pending data in SSL layer of frontend, thus goes to backend data and checks again (infinite loop). The solution is, if there's pending data in SSL layer of frontend and query is not in progress, call ProcessFrontendResponse() to process new request from frontend. - Fix is_system_catalog to use pgpool_regclass if available. (Tatsuo Ishii) - Fix memory leak in pool_get_insert_table_name(). (Tatsuo Ishii) If session context's memory contex is used for nodeToString(), memory is not freed until session ends. - Fix possible memory leak in nodeToString(). (Tatsuo Ishii) Since the memory context could be session context, memory used for String object may be considerable if user session continues for hours or days. See bug track #24 for more details. #24 Severe memory leak in an OLTP environment Date: 2012-08-28 03:43 Reporter: singh.gurjeet http://www.pgpool.net/mantisbt/view.php?id=24 - Fix long standing problem with do_query(). (Tatsuo Ishii) When 1) extended protocol used and 2)unnamed portal is used and 3) no explicit transaction is used, user's unnamed portal is removed by Sync message. This is because Sync message closes transaction and unnamed portal is removed. This leads to "portal "" does not exist" error. Fix is, use "Flush" message instead of Sync. Main difference between using Sync and Flush is, Flush does not return Ready for Query message. So do_query() does not return until all expected responses are returned. It seems the order of messages returned from backend is random, and do_query () manages it by using state bits. ============================================================================ -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese: http://www.sraoss.co.jp
pgsql-announce by date: