Release Date: 2017-03-17
Add "Wants=network.target" to pgpool.service file. (bug 294) (Bo Peng)
Fix pcp_promote_node bug that fails promoting node 0. (Yugo Nagata)
The master node could not be promoted by pcp_promote_node with the following error;
FATAL: invalid pgpool mode for process recovery request DETAIL: specified node is already primary node, can't promote node id 0
In streaming replication mode, there is a case that Pgpool-II regards the status of primary node as "standby" for some reasons, for example, when pg_ctl promote is executed manually during Pgpool-II is running, in which case, it seems to Pgpool-II that the primary node doesn't exist.
This status mismatch should be fixe by pcp_promote_node, but when the node is the master node (the first alive node), it fails as mentioned above.
The reason is as following. before changing the status, pcp_promote_node checks if the specified node is already primary or not by comparing the node id with PRIMARY_NODE_ID. However, if the primary doesn't exist from Pgpool-II's view, PRIMARY_NODE_ID is set to 0, which is same as MASTER_NODE_ID. Hence, when the master node is specified to be promoted, pcp_promote_node is confused that this node is already primary and doesn't have to be promoted, and it exits with the error.
To fix this, pcp_promote_node should check the node id by using REAL_PRIMARY_NODE_ID, which is set -1 when the primary doesn't exist, rather than PRIMARY_NODE_ID.
Add the latest release note link to README file.(Bo Peng)
Pgpool-IIshould not perform ping test after bringing down the VIP. (Muhammad Usama)
This issue was reported by the reporter of bug:[pgpool-II 0000249]: watchdog sometimes fails de-escalation
Fix to release shared memory segments when Pgpool-IIexits. (bug 272) (Tatsuo Ishii)
Fix for [pgpool-general: 5315] pg_terminate_backend (Muhammad Usama)
Adding the missing ExecStop and ExecReload commands to the systemd service configuration file. (Muhammad Usama)
Fix load balancing bug in streaming replication mode. (Tatsuo Ishii)
In an explicit transaction, any SELECT will be load balanced until write query is sent. After writing query is sent, any SELECT should be sent to the primary node. However if a SELECT is sent before a sync message is sent, this does not work since the treatment of writing query is done after ready for query message arrives.
Solution is, the treatment for writing query is done in executing the writing query as well.
The bug has been there since V3.5.
Fix yet another kind mismatch error in streaming replication mode. (Tatsuo Ishii)
do_query()hangs after close message. (Tatsuo Ishii)
Fixing stack smashing detected. (bug 280) (Muhammad Usama)
It was a buffer overflow in
Remove elog/ereport calls from signal handlers. (Tatsuo Ishii)
See [pgpool-hackers: 1950] for details.
Fix bug failed to create INET domain socket in FreeBSD if listen_addresses = '*'. (bug 202) (Bo Peng)
Fix for 0000249: watchdog sometimes fails de-escalation. (bug 249) (Muhammad Usama)
The solution is to use the
waitpid() system call without WNOHANG option.
Fix connection_life_time broken by authentication_timeout. (Yugo Nagata)
Fix authentication timeout that can occur right after client connecttions. (Yugo Nagata)