pgpool2.git
3 years agoFix memory leak pointed out by Coverity.
Tatsuo Ishii [Wed, 2 Feb 2022 01:19:26 +0000 (10:19 +0900)]
Fix memory leak pointed out by Coverity.

Actually it's a false positive.

3 years agoFix health check process issues pointed out by Coverity.
Tatsuo Ishii [Wed, 2 Feb 2022 01:04:06 +0000 (10:04 +0900)]
Fix health check process issues pointed out by Coverity.

Fix possible NULL terminate missing and memory leak when running in test mode.

3 years agoAdjusting the field name in pcp_watchdog_info.
Muhammad Usama [Tue, 1 Feb 2022 13:57:13 +0000 (18:57 +0500)]
Adjusting the field name in pcp_watchdog_info.

Details in: https://www.pgpool.net/pipermail/pgpool-hackers/2021-December/004070.html

3 years agoEnhance parameter status handling.
Tatsuo Ishii [Mon, 31 Jan 2022 08:11:02 +0000 (17:11 +0900)]
Enhance parameter status handling.

When a parameter status message arrives from backend, Pgpool-II
memorized it but did not forward to frontend.  This commit allows
forwarding a parameter status message to frontend.

3 years agoRevert changes accidentally included in commit f9521fe4.
Tatsuo Ishii [Mon, 31 Jan 2022 07:54:44 +0000 (16:54 +0900)]
Revert changes accidentally included in commit f9521fe4.

Commit f9521fe4 (Implement flush tracking feature) accidentally
included changes for Parameter status change fix patch proposed in
[pgpool-hackers: 4103] Re: What to do with ParamterStatus?
https://www.pgpool.net/pipermail/pgpool-hackers/2022-January/004104.html

A commit should only include single change. Unrelated changes should
not brought in together. So revert the part (Parameter status change
fix).

3 years agoFix long standing bug with pcp_node_info.
Tatsuo Ishii [Mon, 31 Jan 2022 02:45:33 +0000 (11:45 +0900)]
Fix long standing bug with pcp_node_info.

It appears that occasionally pcp_node_info shows backend_status field
as "quarantine" when it should be "down". While pcp_node_info shows
the status, first it checks the backend_status member in BackendInfo
struct. If it is 3, then checks quarantine member. If it is other than
0, then the backend_status field is shown as "quarantine". So if
garbage remains in quarantine member, it is shown as "quarantine". The
BackendInfo struct is transferred from pcp_worker process to pcp
frontend client. Unfortunately when the quarantine member was added by
commit 54af632c, it was forgotten to modify pcp_worker.c and
pcp_frontend.c so that the "quarantine" member is transferred.

Fix is needed to be back patched to 3.7, when the "quarantine" member
was first added.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2022-January/004110.html

3 years agoFix comment in libpcp_ext.h.
Tatsuo Ishii [Sun, 30 Jan 2022 09:58:20 +0000 (18:58 +0900)]
Fix comment in libpcp_ext.h.

Fix comment for standby_delay_by_time. In the comment unit used in
standby_delay is microseconds, not milliseconds when
standby_delay_by_time is true.

3 years agoChange the way to obtain replication delay when delay_threshold_by_time is specified.
Tatsuo Ishii [Sat, 29 Jan 2022 07:59:26 +0000 (16:59 +0900)]
Change the way to obtain replication delay when delay_threshold_by_time is specified.

Use pg_stat_replication.replay_lag.  This way makes the code much
simpler and more precise replication delay can be obtained. The only
downside is pg_stat_replication.replay_lag is only available in
PostgreSQL 10 or later (previous method can be used in 9.5 or later).
I think the down side is not worth the trouble and we should use
pg_stat_replication.replay_lag.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2022-January/004109.html

3 years agoAllow to specify replication delay by time.
Tatsuo Ishii [Fri, 28 Jan 2022 01:39:21 +0000 (10:39 +0900)]
Allow to specify replication delay by time.

delay_threshold specifies replication delay upper limit in bytes. Add
similar parameter called delay_threshold_by_time so that the limit can
be specified by time (seconds). The new parameter is effective if it is
greater than 0 and track_commit_timestamp (available in >> PostgreSQL
9.5 or after) is enabled. In this case "show pool_ndoes" and
pcp_node_info display the replication delay in seconds. If the
parameter is set to 0 or track_commit_timestamp is not enabled,
delay_threshold_by_time is ignored and falls back to delay_threshold
mode.

For this purpose new member standby_delay_by_time is added to shared
memory data Backendinfo to distinguish whether replication delay is
measured in byte (standby_delay_by_time == false) or seconds
(standby_delay_by_time = true). If standby_delay_by_time is true,
standby_delay is measured in second * 1000000, so that the precision
is 6 digits after decimal point.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2021-December/004081.html

3 years agoFix pcp_node_info hang when pgpool cannot connect to backend.
Tatsuo Ishii [Wed, 26 Jan 2022 23:12:09 +0000 (08:12 +0900)]
Fix pcp_node_info hang when pgpool cannot connect to backend.

Since 4.3 pcp_node_info (and show pool_nodes) try to connect to all
backend to obtain real-time and actual backend status.  In certain
cases connect(2) fails and keeps on retrying, and the command does not
complete. To fix this, following modifications are made:

1) db_node_status(), which is responsible for probing backend is alive
or not, tries to connect backend with "connect_timeout" parameter
enabled. The timeout is taken from "connect_timeout" parameter of
pgpool.conf. If connect_timeout in pgpool.conf disabled (i.e. set to
0), the timeout parameter is not set. In this case the command will
not complete.

2) db_node_role(), which is responsible for fetching backend role (primary
or standby), does to not retry in connecting to backend using
make_persistent_db_connection_noerror().

3) inform_node_info(), which is the workhorse of pcp_node_info, tries
to fetch info (thus calling db_node_status() and db_node_role()) only
for specified backend. Before it unconditionally access all backend.

Problem reported and patch reviewed by Emond Papegaaij.

Discussion: https://www.pgpool.net/pipermail/pgpool-general/2022-January/008042.html

3 years agoAdd an extended query protocol test for flush tracking.
Tatsuo Ishii [Tue, 18 Jan 2022 05:52:47 +0000 (14:52 +0900)]
Add an extended query protocol test for flush tracking.

3 years agoImplement flush tracking feature.
Tatsuo Ishii [Tue, 18 Jan 2022 05:44:49 +0000 (14:44 +0900)]
Implement flush tracking feature.

When a flush message arrives from frontend, any pending message from
backend should be flushed and sent to frontend. In order to do that,
this commit implements "flush tracking" feature. i.e. when a flush
message arrives, pgpool sets "flush pending" flag in each pending
messages. If the response message from backend corresponds to the
pending message with the flush pending flag being set, the message is
immediately flushed to frontend, rather than buffered.

Discussion: https://www.pgpool.net/pipermail/pgpool-general/2022-January/008026.html

3 years agoEnhance pgproto.
Tatsuo Ishii [Mon, 17 Jan 2022 23:58:38 +0000 (08:58 +0900)]
Enhance pgproto.

Allow to show ParameterStatus's parameter name and value.

3 years agoChange the default value for log_line_prefix.
Tatsuo Ishii [Fri, 14 Jan 2022 07:35:31 +0000 (16:35 +0900)]
Change the default value for log_line_prefix.

Currently the default value for log_line_prefix is "%t pid: %p", which
is the long standing default. Also since 4.2, %a (application name) and
since 4.3 %m (timestamp with millisecond) are available.

This commit changes %t" (timestamp without millisecond) to %m because
PostgreSQL's default is already %m.  Also add %a so that admins easily
distinguish particular process's log.

In summary the default is changed from:
"%t pid: %p"
to:
"%m %a pid: %p"

This change will be applied to not only master branch but 4.3
stable. There's not so many 4.3 users yet and changing the default
will not affect existing 4.3 users. Only new 4.3 will enjoy the new
default.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2022-January/004098.html

3 years agoFix for a small mistake in pgpool-recovery SQL script
Muhammad Usama [Thu, 13 Jan 2022 07:59:24 +0000 (12:59 +0500)]
Fix for a small mistake in pgpool-recovery SQL script

3 years agoFix bug of wd_no_show_node_removal_timeout.
Bo Peng [Thu, 13 Jan 2022 06:00:26 +0000 (15:00 +0900)]
Fix bug of wd_no_show_node_removal_timeout.

Rename "wd_initial_node_showup_time" to "wd_no_show_node_removal_timeout".

3 years agoTest: fix pgpool_setup and watchdog_setup binary PATH in noinstall mode.
Bo Peng [Thu, 13 Jan 2022 05:34:22 +0000 (14:34 +0900)]
Test: fix pgpool_setup and watchdog_setup binary PATH in noinstall mode.

3 years agoUpdate Makefile.in
Bo Peng [Wed, 12 Jan 2022 10:54:07 +0000 (19:54 +0900)]
Update Makefile.in

3 years agoFix regression test 075.
Tatsuo Ishii [Wed, 12 Jan 2022 10:42:01 +0000 (19:42 +0900)]
Fix regression test 075.

The test reported success even if pgpool does not start up.
Problem reported and patch provided by Qiang Lingjie.
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2022-January/004086.html

3 years agoFix bug of pgpool_remote_start.sample.
Bo Peng [Wed, 12 Jan 2022 10:15:00 +0000 (19:15 +0900)]
Fix bug of pgpool_remote_start.sample.

3 years agoDoc: enhance pgproto.
Tatsuo Ishii [Wed, 12 Jan 2022 05:07:05 +0000 (14:07 +0900)]
Doc: enhance pgproto.

Add documents for the previous commit.

3 years agoEnhance pgproto.
Tatsuo Ishii [Wed, 12 Jan 2022 05:02:27 +0000 (14:02 +0900)]
Enhance pgproto.

Add new command 'z'. This is similar to 'y' except 'z' reads only 1
message and do not wait for "ready for query" arrives (or timeout if
no message arrives within 1 second).

3 years agoFix compiler warning.
Tatsuo Ishii [Sat, 8 Jan 2022 03:59:49 +0000 (12:59 +0900)]
Fix compiler warning.

In the commit "Suppress message length log for in_hot_standby." I
forgot to push a modification to
src/include/protocol/pool_proto_modules.h which caused a compiler
warning.

3 years agoDoc: add restriction regarding ParameterStatus and in_hot_standby parameter.
Tatsuo Ishii [Fri, 7 Jan 2022 01:07:55 +0000 (10:07 +0900)]
Doc: add restriction regarding ParameterStatus and in_hot_standby parameter.

3 years agoSuppress message length log for in_hot_standby.
Tatsuo Ishii [Wed, 5 Jan 2022 04:50:59 +0000 (13:50 +0900)]
Suppress message length log for in_hot_standby.

PostgreSQL 14 introduced new config parameter: in_hot_standby
https://www.postgresql.org/docs/14/runtime-config-preset.html
The value is either "on" for standby servers or "off" for primary
servers. As a result pgpool log is fladded by the messages:

2021-12-16 10:40:34.855: psql pid 366965: LOG:  reading message length
2021-12-16 10:40:34.855: psql pid 366965: DETAIL:  message length (22) in slot 1 does not match with slot 0(23)

To avoid this, only complain if the parameter name is not in_hot_standby.
Also the message is enhanced to show the parameter name.

2022-01-05 13:05:15.993: psql pid 642877: LOG:  ParameterStatus "TimeZone": node 1 message length 30 is different from main node message length 24

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2021-December/004077.html

3 years agoDoc: add "exclude" settings to /etc/yum.repos.d/pgdg-redhat-all.repo so that Pgpool...
Bo Peng [Tue, 4 Jan 2022 07:43:44 +0000 (16:43 +0900)]
Doc: add "exclude" settings to /etc/yum.repos.d/pgdg-redhat-all.repo so that Pgpool-II is not installed from PostgreSQL YUM repository.

3 years agoDoc: fix documentation typos.
pengbo [Tue, 4 Jan 2022 05:34:19 +0000 (14:34 +0900)]
Doc: fix documentation typos.

Patch is created by Umar Hayat.

3 years agoDoc: fix release notes.
Masaya Kawamoto [Thu, 23 Dec 2021 07:36:30 +0000 (07:36 +0000)]
Doc: fix release notes.

3 years agoAdd release notes.
Masaya Kawamoto [Wed, 22 Dec 2021 08:57:53 +0000 (08:57 +0000)]
Add release notes.

3 years agoAllow to run regression test against existing installation without recompiling.
Tatsuo Ishii [Wed, 22 Dec 2021 01:13:20 +0000 (10:13 +0900)]
Allow to run regression test against existing installation without recompiling.

It is possible to run regression test using existing installation.

regression.sh -m noinstall

However some of tests fail in this case because those tests require
pgpool to be compiled with variable HEALTHCHECK_DEBUG is set. This is
only possible in following procedure.

make clean
cd src/test/regression
./regress.sh

To run the regression test against existing installation new config
variable "health_check_test" is added. The source code is always
compiled as if HEALTHCHECK_DEBUG is set. The test facility is not
activated unless health_check_test is set to on.

For now I push to only master branch. After some tests, I am going to
push to all supported branches. I know adding new parameter to stable
branches is unusual but the feature is for enhancing test and it is
not visible to ordinal users. So I think my plan is justified by them.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2021-December/004078.html

3 years agoRevert "Add validations of wd_lifecheck_password and recovery_password format"
Tatsuo Ishii [Fri, 10 Dec 2021 23:51:27 +0000 (08:51 +0900)]
Revert "Add validations of wd_lifecheck_password and recovery_password format"

This reverts commit 0f587d1741f20140ea8a2293b40946de27aec736.

This commit caused failure in regression test due to pcp_recovery_node_error:
recovery node 1...ERROR:  invalid password format for recovery_user: t-ishii
DETAIL:  md5 hashed password is not allowed here

3 years agoAdd validations of wd_lifecheck_password and recovery_password format
Masaya Kawamoto [Fri, 10 Dec 2021 04:26:45 +0000 (04:26 +0000)]
Add validations of wd_lifecheck_password and recovery_password format

wd_lifecheck_password and recovery_password are not allowed to be md5
hashed password format but pgpool did not check them.

3 years agoDoc: sync with English manual.
Tatsuo Ishii [Thu, 9 Dec 2021 23:25:29 +0000 (08:25 +0900)]
Doc: sync with English manual.

3 years agoDoc: fix typo in pcp_watchdog_info manual.
Tatsuo Ishii [Thu, 9 Dec 2021 23:24:27 +0000 (08:24 +0900)]
Doc: fix typo in pcp_watchdog_info manual.

3 years agoDoc: fix typos
Bo Peng [Mon, 6 Dec 2021 12:00:24 +0000 (21:00 +0900)]
Doc: fix typos

Patch is created by Lu Chenyang.

3 years agoDoc: update japanese configuration example for SR mode.
Masaya Kawamoto [Mon, 6 Dec 2021 11:29:47 +0000 (11:29 +0000)]
Doc: update japanese configuration example for SR mode.

3 years agoDoc: update doc version.
Bo Peng [Mon, 6 Dec 2021 05:46:08 +0000 (14:46 +0900)]
Doc: update doc version.

3 years agoUpdate Makefile.
Bo Peng [Mon, 6 Dec 2021 02:35:44 +0000 (11:35 +0900)]
Update Makefile.

3 years agoUpdate Makefile.
Bo Peng [Mon, 6 Dec 2021 01:49:04 +0000 (10:49 +0900)]
Update Makefile.

3 years agoDoc: update docs.
Bo Peng [Mon, 6 Dec 2021 01:32:50 +0000 (10:32 +0900)]
Doc: update docs.

3 years agoDoc: add mention about add native/SI mode example to 4.3 release note.
Tatsuo Ishii [Mon, 6 Dec 2021 00:18:43 +0000 (09:18 +0900)]
Doc: add mention about add native/SI mode example to 4.3 release note.

3 years agoRename recovery_2nd_stage.sample to replication_mode_recovery_2nd_stage.sample
Bo Peng [Sun, 5 Dec 2021 17:35:03 +0000 (02:35 +0900)]
Rename recovery_2nd_stage.sample to replication_mode_recovery_2nd_stage.sample

3 years agoUpdate pgpool.spec.
Bo Peng [Sun, 5 Dec 2021 17:33:29 +0000 (02:33 +0900)]
Update pgpool.spec.

3 years agoDoc: add new configuration example for replication mode and si mode.
Bo Peng [Sun, 5 Dec 2021 17:26:41 +0000 (02:26 +0900)]
Doc: add new configuration example for replication mode and si mode.

3 years agoDoc: update documentation "Pgpool-II + Watchdog Setup Example".
Bo Peng [Sun, 5 Dec 2021 16:55:34 +0000 (01:55 +0900)]
Doc: update documentation "Pgpool-II + Watchdog Setup Example".

3 years agoSuppress bison warnings regarding yacc incompatibility.
Tatsuo Ishii [Fri, 3 Dec 2021 05:40:23 +0000 (14:40 +0900)]
Suppress bison warnings regarding yacc incompatibility.

Run bison without yacc compatibility may raise some risks, so just suppress warnings.

3 years agoDoc: fix typos.
Bo Peng [Thu, 25 Nov 2021 06:19:45 +0000 (15:19 +0900)]
Doc: fix typos.

3 years agoAdd 4.3RC1 release notes.
Bo Peng [Wed, 24 Nov 2021 13:43:41 +0000 (22:43 +0900)]
Add 4.3RC1 release notes.

3 years agoFix mention about insert_lock in 4.3 release note.
Tatsuo Ishii [Tue, 23 Nov 2021 23:40:20 +0000 (08:40 +0900)]
Fix mention about insert_lock in 4.3 release note.

The compile default was changed twice while preparing 4.3.  First, on
to off, then finally off to on. To avoid the confusion, remove "on to
off" part.

3 years agoFix redundant code.
Tatsuo Ishii [Mon, 22 Nov 2021 07:31:39 +0000 (16:31 +0900)]
Fix redundant code.

Patch contributed by Lu Chenyang.

3 years agoAdd release notes for Pgpool-II 4.2.6, 4.3beta2.
Masaya Kawamoto [Thu, 18 Nov 2021 09:04:20 +0000 (09:04 +0000)]
Add release notes for Pgpool-II 4.2.6, 4.3beta2.

3 years agoReject extraneous data after SSL encryption handshake.
Tatsuo Ishii [Wed, 17 Nov 2021 10:26:11 +0000 (19:26 +0900)]
Reject extraneous data after SSL encryption handshake.

In the server side implementation of SSL negotiation
(pool_ssl_negotiate_serverclient()), it was possible for a
man-in-the-middle attacker to inject arbitrary SQL commands. This is
possible if Pgpool-II is configured to use cert authentication or
hostssl + trust. This resembles PostgreSQL's CVE-2021-23214.

Similarly, in the client side implementation of SSL negotiation
(pool_ssl_negotiate_clientserver()), it was possible for a
man-in-the-middle attacker to inject arbitrary responses. This is
possible if PostgreSQL is using trust authentication with a clientcert
requirement. It is not possible with cert authentication because
Pgpool-II does not implement the cert authentication between Pgpool-II

To fix these reject extraneous data in the read buffer after SSL
encryption handshake.
and PostgreSQL. This resembles PostgreSQL's CVE-2021-23222.

3 years agoDeal with PostgreSQL 14 while processing pg_terminate_backend().
Tatsuo Ishii [Tue, 16 Nov 2021 00:45:31 +0000 (09:45 +0900)]
Deal with PostgreSQL 14 while processing pg_terminate_backend().

Do not reject two arguments form of pg_terminate_backend() as
PostgreSQL 14 or after accept two arguments.

3 years agoFix occasional 073.pg_terminate_backend regression test failure.
Tatsuo Ishii [Tue, 16 Nov 2021 00:02:47 +0000 (09:02 +0900)]
Fix occasional 073.pg_terminate_backend regression test failure.

The test used "ps -ef" command to find the process which is running
SELECT command.  However in some cases the "ps -ef" command omits part
of "SELECT" in its output and this made the test fail.
So use "ps -efw" instead of "ps -ef" to prevent it.

3 years agoDoc: update 4.3 release note.
Tatsuo Ishii [Tue, 9 Nov 2021 01:27:36 +0000 (10:27 +0900)]
Doc: update 4.3 release note.

Suggestion from Muhammad Usama.

3 years agoDoc: add Japanese translation for commit a683288045332fdd8ea7cd7038510353cb3dbfc
Tatsuo Ishii [Mon, 8 Nov 2021 08:14:01 +0000 (17:14 +0900)]
Doc: add Japanese translation for commit a683288045332fdd8ea7cd7038510353cb3dbfc

3 years agoRename regression test 074.
Bo Peng [Mon, 8 Nov 2021 08:27:38 +0000 (17:27 +0900)]
Rename regression test 074.

3 years agoUpdate patch file.
Bo Peng [Mon, 8 Nov 2021 08:18:11 +0000 (17:18 +0900)]
Update patch file.

3 years agoDoc: Mention of risks with using the dynamic cluster membership.
Muhammad Usama [Mon, 8 Nov 2021 07:53:22 +0000 (12:53 +0500)]
Doc: Mention of risks with using the dynamic cluster membership.

3 years agoDoc: update docs.
Bo Peng [Mon, 8 Nov 2021 05:53:11 +0000 (14:53 +0900)]
Doc: update docs.

3 years agoUpdate version to Pgpool-II 4.4 devel.
Bo Peng [Mon, 8 Nov 2021 05:38:09 +0000 (14:38 +0900)]
Update version to Pgpool-II 4.4 devel.

3 years agoEnable AM_MAINTAINER_MODE on master branch.
Bo Peng [Mon, 8 Nov 2021 05:11:37 +0000 (14:11 +0900)]
Enable AM_MAINTAINER_MODE on master branch.

3 years agoDisable AM_MAINTAINER_MODE.
Bo Peng [Mon, 8 Nov 2021 05:09:15 +0000 (14:09 +0900)]
Disable AM_MAINTAINER_MODE.

3 years agoDoc: fix typo.
Tatsuo Ishii [Mon, 8 Nov 2021 02:58:17 +0000 (11:58 +0900)]
Doc: fix typo.

3 years agoDoc: translate into Japanese some of 4.3 release note.
Tatsuo Ishii [Mon, 8 Nov 2021 02:45:08 +0000 (11:45 +0900)]
Doc: translate into Japanese some of 4.3 release note.

3 years agoDoc: add mention about failover_on_backend_shutdown to the migration section in Japan...
Tatsuo Ishii [Mon, 8 Nov 2021 02:17:22 +0000 (11:17 +0900)]
Doc: add mention about failover_on_backend_shutdown to the migration section in Japanese doc.

Also translate into Japanese new documents added in:
https://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=4760459d45e33b573458e3973e192c43077f7eb1

3 years agoDoc: add new watchdog dynamic cluster definition.
Tatsuo Ishii [Mon, 8 Nov 2021 01:11:45 +0000 (10:11 +0900)]
Doc: add new watchdog dynamic cluster definition.

3 years agoDoc: remove unnecessary character from wd_remove_shutdown_nodes.
Tatsuo Ishii [Mon, 8 Nov 2021 00:01:20 +0000 (09:01 +0900)]
Doc: remove unnecessary character from wd_remove_shutdown_nodes.

3 years agoDoc: add 4.3 Japanese release note.
Bo Peng [Sun, 7 Nov 2021 16:49:00 +0000 (01:49 +0900)]
Doc: add 4.3 Japanese release note.

3 years agodoc: Documentation update for dynamic cluster membership feature
Muhammad Usama [Sun, 7 Nov 2021 11:21:14 +0000 (16:21 +0500)]
doc: Documentation update for dynamic cluster membership feature

3 years ago[New-Feature] Enable dynamic cluster membership of watchdog nodes
Muhammad Usama [Sun, 7 Nov 2021 11:00:43 +0000 (16:00 +0500)]
[New-Feature] Enable dynamic cluster membership of watchdog nodes

Enables dynamic watchdog cluster definition by introducing the concept of
Member and Nonmember watchdog nodes. If the node's membership gets revoked
from the watchdog cluster, then the cluster re-calibrate itself dynamically
to adjust all subsequent majority rule computations.

Three new settings wd_no_show_node_removal_timeout, wd_lost_node_removal_timeout
and wd_remove_shutdown_nodes are added to configure the membership
criteria of the watchdog nodes.

3 years agoDoc: add mention about failover_on_backend_shutdown to the migration section.
Tatsuo Ishii [Thu, 4 Nov 2021 12:14:38 +0000 (21:14 +0900)]
Doc: add mention about failover_on_backend_shutdown to the migration section.

3 years agoDoc: fix description on pgpool.conf.sample-*
Masaya Kawamoto [Thu, 4 Nov 2021 05:17:34 +0000 (05:17 +0000)]
Doc: fix description on pgpool.conf.sample-*

This is a follow up on commit:
https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=4ab1566ff133e449a4ddff7f1d7133b87d10152d

3 years agoDoc: mention that the default of failover_require_consensus has been changed to on.
Tatsuo Ishii [Tue, 2 Nov 2021 01:19:49 +0000 (10:19 +0900)]
Doc: mention that the default of failover_require_consensus has been changed to on.

3 years agoChange compile time default value of failover_require_consensus to on.
Tatsuo Ishii [Tue, 2 Nov 2021 01:13:32 +0000 (10:13 +0900)]
Change compile time default value of failover_require_consensus to on.

failover_require_consensus is already on in the docs and in
pgpool.conf.sample-stream. So sync with them.

3 years agoRemove sample config files from Makefile, because the files has been removed by the...
Bo Peng [Tue, 2 Nov 2021 00:54:17 +0000 (09:54 +0900)]
Remove sample config files from Makefile, because the files has been removed by the previous commit.

3 years agoDoc: mention that snapshot isolation mode is now ready for production in the 4.3...
Tatsuo Ishii [Mon, 1 Nov 2021 01:48:53 +0000 (10:48 +0900)]
Doc: mention that snapshot isolation mode is now ready for production in the 4.3 release note.

3 years agoDoc: remove descriptions on pgpool.conf.sample-*
Tatsuo Ishii [Mon, 1 Nov 2021 01:31:30 +0000 (10:31 +0900)]
Doc: remove descriptions on pgpool.conf.sample-*

This is a follow up on commit:
https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=4ab1566ff133e449a4ddff7f1d7133b87d10152d

3 years agoDoc: initial cut of Pgpool-II 4.3 release note.
Tatsuo Ishii [Sat, 30 Oct 2021 12:30:15 +0000 (21:30 +0900)]
Doc: initial cut of Pgpool-II 4.3 release note.

Still some ongoing items are missing.

3 years agoUnify all pgpool.conf.sample files into single pgpool.conf.sample.
Tatsuo Ishii [Sat, 30 Oct 2021 04:30:35 +0000 (13:30 +0900)]
Unify all pgpool.conf.sample files into single pgpool.conf.sample.

Now that all configuration parameters in pgpool.conf are commented out,
there's no point to have separate configuration sample files. Just
specify the backend_clustering_mode parameter is enough. pgpool_setup
is modified to adopt the change.

Update to documents will be followed.

3 years agoFix application_name array lacking an entry for logger process.
Tatsuo Ishii [Mon, 25 Oct 2021 00:40:36 +0000 (09:40 +0900)]
Fix application_name array lacking an entry for logger process.

Add logger process entry to the process name array. This was missed
since the logger process was added.
Per coverity.

3 years agoEnhance SIGHLD handler of Pgpool-II main process.
Tatsuo Ishii [Sun, 24 Oct 2021 07:22:33 +0000 (16:22 +0900)]
Enhance SIGHLD handler of Pgpool-II main process.

When Pgpool-II child is killed by SIGKILL signal, the SIGHLD handler
just emitted LOG level message as other signals.  But SIGKILL is an
important event, for example killed by OOM killer. So emit a WARNING
level message instead.

Per suggestion from Michail Alexakis.
Discussion: https://www.pgpool.net/pipermail/pgpool-general/2021-October/007808.html

3 years agoFix connection counter issue when reserved_connections is 0.
Tatsuo Ishii [Sun, 24 Oct 2021 02:30:25 +0000 (11:30 +0900)]
Fix connection counter issue when reserved_connections is 0.

If reserved_connections is 0, we don't need to manage the connection
counter to check if the count is larger than
(pool_config->num_init_children - pool_config->reserved_connections).
So remove the check.  This will prevent unwanted "Sorry, too many
clients already" error" by accidental counter leak.

For reserved_connections > 0 case, we need to fix the counter leak but
it's another story.

Discussion: https://www.pgpool.net/pipermail/pgpool-general/2021-October/007808.html

3 years agoFix missing comment out in sample pgpool.conf.
Tatsuo Ishii [Sun, 24 Oct 2021 01:54:30 +0000 (10:54 +0900)]
Fix missing comment out in sample pgpool.conf.

statement_level_load_balance and allow_clear_text_frontend_auth were
not commented out.

3 years agoDoc: update Japanese "Pgpool-II + Watchdog Setup Example" and sample scripts.
Masaya Kawamoto [Thu, 21 Oct 2021 05:51:11 +0000 (05:51 +0000)]
Doc: update Japanese "Pgpool-II + Watchdog Setup Example" and sample scripts.

Updating Japanese document and script to Pgpool-II 4.3 and
Postgresql 14. English document will updated later.
Pgpool-II 4.3 yum repository url is blank and sample script
link is set master branch because there are still not existed.
We will update those when Pgpool-II 4.3 release.

3 years agoCommenting out all parameters in pgpool.conf.
Tatsuo Ishii [Sun, 17 Oct 2021 13:40:15 +0000 (22:40 +0900)]
Commenting out all parameters in pgpool.conf.

This will make pgpool.conf less confusing and make PostgreSQL users
easier to understand pgpool.conf because this follows the PostgreSQL
way.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2021-October/004044.html

3 years agoChange compile time default value of insert_lock to on.
Tatsuo Ishii [Sun, 17 Oct 2021 13:36:32 +0000 (22:36 +0900)]
Change compile time default value of insert_lock to on.

insert_lock is already on in the in pgpool.conf.sample-replication and
pgpool.conf.sample-snapshot. So sync with them. Documentations are
changed as well.

4 years agoChange compile time default value of failover_when_quorum_exists to on.
Tatsuo Ishii [Thu, 14 Oct 2021 08:27:50 +0000 (17:27 +0900)]
Change compile time default value of failover_when_quorum_exists to on.

failover_when_quorum_exists is already on in the docs and in
pgpool.conf.sample-stream. So sync with them.

4 years agoChange compile time default value of load_balance_mode to on.
Tatsuo Ishii [Thu, 14 Oct 2021 07:11:39 +0000 (16:11 +0900)]
Change compile time default value of load_balance_mode to on.

load_balance_mode is already on in pgpool.conf.sample. So sync with it.

4 years agoDoc: fix documentation typos.
Masaya Kawamoto [Wed, 13 Oct 2021 04:12:58 +0000 (04:12 +0000)]
Doc: fix documentation typos.

4 years agoEnable streaming replication check by default.
Tatsuo Ishii [Wed, 13 Oct 2021 02:26:43 +0000 (11:26 +0900)]
Enable streaming replication check by default.

Change the compile time default value of sr_check_period from 0 to
10. This means if operating in streaming replication mode, now
streaming replication check is enabled by default. The parameter is
already set to 10 in pgpool.conf.sample-stream. So the only difference
is, when sr_check_period is commented out.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2021-October/004042.html

4 years agoFix there's no new line at the end of file.
Tatsuo Ishii [Tue, 12 Oct 2021 08:28:15 +0000 (17:28 +0900)]
Fix there's no new line at the end of file.

4 years agoFix nasty bug with pgpool_recovery() in 4.3 or later.
Tatsuo Ishii [Tue, 12 Oct 2021 06:16:49 +0000 (15:16 +0900)]
Fix nasty bug with pgpool_recovery() in 4.3 or later.

Reported by Kawamoto and Peng Bo.

4 years agoFix signal handler for SIGTERM, SIGINT and SIGQUIT.
Tatsuo Ishii [Tue, 12 Oct 2021 01:40:11 +0000 (10:40 +0900)]
Fix signal handler for SIGTERM, SIGINT and SIGQUIT.

It did not properly save errno and it was possible to overwrite errno.

4 years agoChange compile time default of log_standby_delay from 'none' to 'if_over_threshold'.
Tatsuo Ishii [Fri, 8 Oct 2021 01:55:53 +0000 (10:55 +0900)]
Change compile time default of log_standby_delay from 'none' to 'if_over_threshold'.

Before the compile time default was 'none' but the default value of
sample pgpool.conf was 'if_over_threshold'. Since 'if_over_threshold'
is more useful for most users, change the compile time default to
'if_over_threshold' as well.

Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2021-October/004035.html

4 years agoFix pcp_proc_info, show pool_processes and show pool_pools command.
Masaya Kawamoto [Wed, 6 Oct 2021 05:56:15 +0000 (05:56 +0000)]
Fix pcp_proc_info, show pool_processes and show pool_pools command.

I added new fields to the result of those commands in following commit:
https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commitdiff;h=45152975fdf8d57deaff07dc6c34117fa8eeb3db

The usage of client_idle_limit was mistaken. Child processes are
restarted by child_life_time not client_idle_limit, and client_idle_limit
is related to Client idle duration and disconnects the connection.

So, I changed the display of Start time and Client idle duration.
I modify wait_for_connections function to calculate the time remaining
until the child process is restarted by child_life_time; Instead of
using child_life_time as the timeout for select(2), select(2) with 1 sec
timeout is looped through child_life_time times to get the elapsed time.

Moreover when there were multiple backends, Client idle duration was
only displayed in backend0, so I fix this too.

4 years agoDoc: fix documentation typos.
Bo Peng [Wed, 6 Oct 2021 01:30:24 +0000 (10:30 +0900)]
Doc: fix documentation typos.

4 years agoFix typos in documentation and sample scripts.
Bo Peng [Mon, 4 Oct 2021 10:56:49 +0000 (19:56 +0900)]
Fix typos in documentation and sample scripts.

Patch is created by Kazufumi Noto.

4 years agoAdd missing files to tar ball.
Bo Peng [Sun, 3 Oct 2021 12:12:00 +0000 (21:12 +0900)]
Add missing files to tar ball.

4 years agoDoc: fix yum install command typo in configuration example.
Bo Peng [Wed, 29 Sep 2021 14:47:17 +0000 (23:47 +0900)]
Doc: fix yum install command typo in configuration example.