Bo Peng [Mon, 18 May 2020 12:12:25 +0000 (21:12 +0900)]
Change relative path of SSL files to configuration directory.
Patch is created by Umar Hayat and Japanese documentation is added by me.
Bo Peng [Sun, 10 May 2020 00:27:48 +0000 (09:27 +0900)]
Doc: Add note about if_up_cmd and if_down_cmd command.
Tatsuo Ishii [Wed, 6 May 2020 06:48:32 +0000 (15:48 +0900)]
Doc: add --scope option to Japanese pcp_stop_pgpool manual.
Also add mention about the default value of --mode and --scope.
Muhammad Usama [Tue, 5 May 2020 19:30:33 +0000 (00:30 +0500)]
Fix:
0000608: pgpool ssl front end accept all ciphers. not working as expected.
SSL cipher_list needed to be set for server-side SSL context
instead for the client-side context.
Muhammad Usama [Mon, 4 May 2020 11:38:39 +0000 (16:38 +0500)]
New feature: cluster scope for pcp_stop_pgpool utility command
Make pcp_stop_pgpool utility to terminate (optional) all the pgpool nodes in the
watchdog cluster
For that purpose added "--scope=cluster/local" option in the pcp_stop_pgpool
utility to set the scope of the command. The scope could be either
'local' or 'cluster'
Along with that, the commit adds the infrastructure in watchdog for broadcasting
the custom commands over the watchdog network. This will make it easier to
implement the --scope=cluster for other PCP utilities.
Muhammad Usama [Mon, 4 May 2020 11:35:35 +0000 (16:35 +0500)]
Some code reorganization
While working on the pcp_stop_pgpool command to implement cluster mode,
I realized that we have a lot of clutter in a few source files. Especially
pool.h header file. So I also did some code reorganization and added a
bunch of new includefiles in the hope to reduce the size of pool.h and
also get rid of too many global functions.
Along the way, I found out there are few other files that need a little
shredding as well, src/main/pgpool_main.c and src/protocol/child.c are at
the top of this wanted to be trimmed list. So as part of this commit.
I have taken a few things related to internal commands
(interface between the child processes can and Pgpool-II main process)
from pgpool_main.c file and moved them into new "src/main/pool_internal_comms.c"
Similarly, src/protocol/child.c had and still has so many functions that do
not fit with the personality of child.c file. So I have moved some of the
stuff related to DB functions info src/protocol/pool_pg_utils.c file.
Having done that I think this is still not enough and we may require another
round ( if someoneis willing to work on it) of a source file reorganization.
Tatsuo Ishii [Mon, 4 May 2020 03:46:53 +0000 (12:46 +0900)]
Fix extended query tests.
Commit https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=
eee4c86c03546abe4e33396c808c8425c23a443c
broke extra scripts because it added Bind message log if log_per_node_statement is enabled.
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-May/003611.html
Takuma Hoshiai [Tue, 28 Apr 2020 08:50:19 +0000 (17:50 +0900)]
Improve process status of extend query
Previously, pgpool status is incorrect with extend query.
For example, when query is executing, but process status
is idle. This fix can display process status correctly.
If 'Execute' message is received, pgpool display process
status the same as Simple query.
For example:
user databse SELECT
In addition, fix log_statement bug. Previously, statement
using extend query is not logged by log_statement parameter.
It was improved in this commit.
Other, log_per_node_statement can log query with BIND message.
Tatsuo Ishii [Sun, 26 Apr 2020 02:20:06 +0000 (11:20 +0900)]
Downgrade too verbose authentication logs.
When frontend authentication succeeds with clear text password and md5
authentication, message is out with log priority LOG. This floods
Pgpool-II log on busy systems. To fix this, downgrade the LOG message
to DEBUG1. Note that CERT auth related log level is still
LOG. Downgrading it causes regression 024 and 029 failure.
Discussion:
https://www.pgpool.net/mantisbt/view.php?id=606
https://www.pgpool.net/pipermail/pgpool-general/2020-April/007064.html
Tatsuo Ishii [Sun, 26 Apr 2020 00:58:50 +0000 (09:58 +0900)]
Remove duplicate global data.
This causes a link error on some system (Fedra 32).
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-April/003593.html
Tatsuo Ishii [Thu, 23 Apr 2020 12:32:28 +0000 (21:32 +0900)]
Fix unnecessary checks.
Patch contributed by sherlockcpp.
Discussion: https://www.pgpool.net/pipermail/pgpool-general/2020-April/007062.html
Tatsuo Ishii [Thu, 23 Apr 2020 05:32:28 +0000 (14:32 +0900)]
Doc: fix typo.
Patch contributed by Umar Hayat.
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-April/003587.html
Tatsuo Ishii [Mon, 20 Apr 2020 05:25:09 +0000 (14:25 +0900)]
Forgot to push file in previous commit.
Previous commit: https://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=
589a81960939102fb620b395b8cd45434d6aa4bc
Tatsuo Ishii [Sat, 18 Apr 2020 04:03:44 +0000 (13:03 +0900)]
Fix unnecessary free pointed out by Coverity.
Since buf is already checked whether it is NULL or not, it is not
necessary to check the variable before freeing it.
Tatsuo Ishii [Sat, 18 Apr 2020 03:50:47 +0000 (12:50 +0900)]
Fix array access overrun pointed out by Coverity.
Muhammad Usama [Thu, 16 Apr 2020 10:01:30 +0000 (15:01 +0500)]
Fix for segmentation fault in PCP processor: Bug 598
The crash was caused by an unconditionally pfree on buf without verifyingif it
was actually allocated or not. And freeing the but was not actually required at
the first places since the associated MemoryContext always gets resets anyway
after each loop iteration.
reference: https://www.pgpool.net/mantisbt/view.php?id=598
Bo Peng [Wed, 15 Apr 2020 05:37:54 +0000 (14:37 +0900)]
Doc: fix doc mistakes.
Tatsuo Ishii [Wed, 15 Apr 2020 04:27:18 +0000 (13:27 +0900)]
Fix a warning message is never output in watchdog.
Patch provided by sherlockcpp.
Discussion: https://www.pgpool.net/pipermail/pgpool-general/2020-April/007014.html
Muhammad Usama [Tue, 14 Apr 2020 12:19:16 +0000 (17:19 +0500)]
Fix for Coverity scan defect:
1424125 Resource leak
Tatsuo Ishii [Sun, 12 Apr 2020 09:15:05 +0000 (18:15 +0900)]
Doc: fix typo in failover.sgml.
Patch provided by sherlockcpp.
Tatsuo Ishii [Sat, 11 Apr 2020 05:34:40 +0000 (14:34 +0900)]
Fix pool show command code.
Enhance common function send_complete_and_ready() so that it uses
local variable in more sane way.
Also fix unnecessary limitation of number of rows affected by the
command.
Patch provided by sherlockcpp and Tatsuo Ishii.
Bo Peng [Tue, 7 Apr 2020 11:10:39 +0000 (20:10 +0900)]
Fix compile warning.
Tatsuo Ishii [Tue, 7 Apr 2020 23:43:54 +0000 (08:43 +0900)]
Doc: fix typo.
Muhammad Usama [Tue, 7 Apr 2020 16:01:16 +0000 (21:01 +0500)]
Minor improvement in configure script
While checking for libpq the configure script was not honoring the LDFLAGS
settings.This sometimes breaks the configure when libraries are not present at
the defaultlocations# Please enter the commit message for your changes
Tatsuo Ishii [Tue, 7 Apr 2020 05:08:21 +0000 (14:08 +0900)]
Allow to set application name parameter of log_line_prefix in more cases.
%a in log_line_prefix was only be set if application_name is specified
in startup message. Now it is possible to set application_name if it
is set in the connection parameter or SET command.
Also set hard coded application_name in various internal process so
that admins can easily recognize each log line belonging to which
process.
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-April/003572.html
Bo Peng [Sun, 5 Apr 2020 18:28:15 +0000 (03:28 +0900)]
Feature: Add support for an user/password input file to pg_md5.
Allow to use an input file containing multiple username/password pairs.
Patch created by Umar Hayat, and Japanese document added by Bo Peng.
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-March/003527.html
Bo Peng [Sun, 5 Apr 2020 16:10:37 +0000 (01:10 +0900)]
Doc: fix document typos.
Patch is provided by sherlockcpp@foxmail.com.
Muhammad Usama [Mon, 6 Apr 2020 09:12:00 +0000 (14:12 +0500)]
Fix for [pgpool-general: 6951] Fix-condition-tok-is-always-true
Fix contributed by: sherlockcpp <sherlockcpp@foxmail.com>
Tatsuo Ishii [Wed, 1 Apr 2020 05:52:32 +0000 (14:52 +0900)]
Add support for SSL passphrase.
Add more regression test file missed in previous commit.
Tatsuo Ishii [Tue, 31 Mar 2020 07:59:57 +0000 (16:59 +0900)]
Add regression test for previous commit.
Tatsuo Ishii [Tue, 31 Mar 2020 07:58:01 +0000 (16:58 +0900)]
Fix bug with query cache.
If an execute message is issued right after Sync message and query
cache hits, Pgpool-II hangs in inject_cached_message() because there's
no data to be read from backend. Fix is, change the code block which
checks the data availability in backend to the beginning of the loop
from the end of the loop. Also teach is_cache_empty() to call
pool_is_suspend_reading_from_frontend() so that if we suspend reading
from frontend. If so, return that cache is empty even if there's data
in frontend cache to receive a ready for query message from backend.
Tatsuo Ishii [Mon, 30 Mar 2020 03:32:53 +0000 (12:32 +0900)]
Add support for SSL passpharse.
Add regression test file missed in the previous commit.
Tatsuo Ishii [Mon, 30 Mar 2020 03:23:37 +0000 (12:23 +0900)]
Add support for SSL passphrase.
Authors: Umar Hayat. Small modification and Japanese document by Tatsuo Ishii.
Dicussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-March/003548.html
Tatsuo Ishii [Mon, 23 Mar 2020 22:27:18 +0000 (07:27 +0900)]
More attempt to fix 024.cert_auth failure.
Author: Umar Hayat
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-March/003562.html
Tatsuo Ishii [Thu, 19 Mar 2020 14:20:48 +0000 (23:20 +0900)]
Fix 024.cert_auth regression failure on CentOS6.
Recent addition of CRL support causes regression failure of
024.cert_auth only on CentOS6, because of the default key length
difference in different OpenSSL versions. Fix is, explicitly specify
key length.
Author: Umar Hayat
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-March/003560.html
Tatsuo Ishii [Wed, 18 Mar 2020 05:31:11 +0000 (14:31 +0900)]
Add support for an user/password input file to pg_enc.
Allow to use an input file containing multiple username/password pairs.
Patch created by Umar Hayat, along with Japanese document by Tatsuo Ishii.
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-March/003543.html
Tatsuo Ishii [Mon, 16 Mar 2020 02:19:15 +0000 (11:19 +0900)]
Fix long standing bug in backend flag configuration processing module.
Recent commit revealed bugs in backend flag (backend_flag0 etc.)
configuration processing module. This leads to massive build farm
failure.
1) The default value for backend flag is ALWAYS_MASTER. This should be
"" (empty string).
2) The final value of the backend flag is the last default for the
flag. This is plain wrong (see BackendFlagsAssignFunc()). The result
value should be OR'ed value of each default value since backend_flag
is a bit data.
Probably we should back port the fix to the other stable branches but
I would like to confirm that the fix does not add bugs or side
effects before doing that.
Discussion:
https://www.pgpool.net/pipermail/pgpool-hackers/2020-March/003553.html
Tatsuo Ishii [Sat, 14 Mar 2020 02:54:38 +0000 (11:54 +0900)]
Add support for SSL CRL (Certificate Revocation List).
Patch created by Umar Hayat, along with Japanese document by Tatsuo
Ishii.
Discussion: https://www.pgpool.net/pipermail/pgpool-hackers/2020-February/003505.html
Tatsuo Ishii [Fri, 13 Mar 2020 01:36:17 +0000 (10:36 +0900)]
Fix problems in watchdog processing json data.
Comment on the patch from the author:
In the watchdog source code (src/watchdog/wd_json_data.c), there are some instances of bad handling of values read from json data.
For example:
1) The boolean pool configuration settings "load_balance_mode" and "master_slave_mode" are read using json_get_int_value_for_key(), resulting in 4-bytes being written into their location within the POOL_CONFIG, yet (being bool) they are only 1-byte long. This corrupts the values of the structure members following them.
2) Similarly, when parsing node function json data, "Flags" is read using json_get_int_value_for_key(), resulting in 4-bytes being written into an "unsigned char flags" variable on the stack, overwriting 3-bytes of stack memory following it. On a big-endian system (e.g. Solaris-sparc or Linux for IBM Z), this causes regression test "013.watchdog_failover_require_consensus" to fail, since 0 is written into Flags, rather than the intended value which is in the least significant byte of the int value written.
Bug reported in:
https://www.pgpool.net/mantisbt/view.php?id=596
Patch author:
Greg Nancarrow (Fujitsu Australia)
Tatsuo Ishii [Thu, 12 Mar 2020 06:49:35 +0000 (15:49 +0900)]
Fix SCRAM auth handling bug.
Comment on the patch from the author:
The code is currently checking if "len <= 8", but len is is
network-byte-order (big-endian). It is surely meant to be checking
"message_length" instead, which is "len" coverted to host-byte-order
(see previous line of code). Under (Intel) Linux, which is
little-endian, the value of "len" will be a large number and thus
render the current error condition check ineffective [for example, in
one case that I debugged, an example value of len was
134217728
(0x08000000), meaning that message_length was actually 8].
Additionally, it seems the "<=" check should actually be "<", based on
the length values that I see when debugging this code.
Bug reported in:
https://www.pgpool.net/mantisbt/view.php?id=595
Patch author:
Greg Nancarrow (Fujitsu Australia)
Tatsuo Ishii [Wed, 11 Mar 2020 04:05:43 +0000 (13:05 +0900)]
Fix possible data inconsistency in native replication mode.
There is a long standing bug with native replication mode. As reported
in pgpool-general, it is possible to lost sync of database if slave
DB's postgres process is killed. This is due to an oversight in
read_packets_and_process().
In replication mode if slave server's postgres is killed, then local
backend status is set to down.
*(my_backend_status[i]) = CON_DOWN;
So next DDL/DML in the same session is only issued to master node (and
other slave if there are multiple slave nodes). Of course this leads
to serious data inconsistency problem because in native replication
mode all DB nodes must receive DDL/DML at the same time.
Fix is triggering failover in thiscase.
Discussions:
https://www.pgpool.net/pipermail/pgpool-general/2020-March/006954.html
https://www.pgpool.net/pipermail/pgpool-hackers/2020-March/003540.html
Bo Peng [Sat, 7 Mar 2020 11:40:04 +0000 (20:40 +0900)]
Update src/Makefile.in.
Tatsuo Ishii [Mon, 9 Mar 2020 10:18:08 +0000 (19:18 +0900)]
Unify master_slave_mode, master_slave_sub_mode and replication_mode into backend_clustering_mode.
Previous "running mode" concept was confusing and hard to
understand. For example, each running mode is actually mutually
exclusive but it was possible to use some of modes altogether. Of
course the result was chaos.
Now the "running mode" is renamed to "clustering mode" and the
configuration variable is unified into single
"backend_clustering_mode". It is an enum type and possible values are:
streaming_replication', 'native_replication', 'logical_replication',
'slony' or 'raw'.
Documents are changed accordingly.
Note that old config variables are still remaining in
pool_config_variables.c. So it is possible to read old config
variables and replace them into new config variable
backend_clustering_mode to mitigate the migration pain from the old
configs to new configs, but I am not sure that is worth the problem.
Bo Peng [Thu, 5 Mar 2020 23:00:18 +0000 (08:00 +0900)]
Update pool_config.c.
pengbo@sraoss.co.jp [Thu, 5 Mar 2020 22:45:51 +0000 (07:45 +0900)]
Fix watchdog ping probes fail with long hostnames due to small buffer.
per 516.
Tatsuo Ishii [Mon, 2 Mar 2020 07:12:08 +0000 (16:12 +0900)]
Doc: enhance installation documents.
Add "Planning" section so that uses can grasp a big picture of
installation.
Tatsuo Ishii [Thu, 27 Feb 2020 05:00:24 +0000 (14:00 +0900)]
Doc: explicitly mention that Pgpool-II needs 3 nodes to avoid split brain.
Tatsuo Ishii [Thu, 27 Feb 2020 00:44:43 +0000 (09:44 +0900)]
Doc: enghance description of failover.
Tatsuo Ishii [Wed, 26 Feb 2020 01:31:37 +0000 (10:31 +0900)]
Fix last status changed timestamp is not set.
If there's no status file or -D is specified when starting up
Pgpool-II, the last status changed timestamp was not set and
pcp_node_info command for example did not show the proper timestamp,
rather showed 1970/1/1, which is the Unix timestamp epoch.
Note that correct timestamp is set once clients connect to Pgpool-II
because at that time the status is changed from "waiting" to "up". So
the phenomena is only observed before any client connects to the
server.
Tatsuo Ishii [Tue, 25 Feb 2020 08:05:16 +0000 (17:05 +0900)]
Add pgpool_adm's pcp_health_check_stats function.
Bo Peng [Tue, 25 Feb 2020 00:24:51 +0000 (09:24 +0900)]
Update Makefile.in files.
Tatsuo Ishii [Mon, 24 Feb 2020 13:29:24 +0000 (22:29 +0900)]
Add pcp_healt_check_stats command.
Bo Peng [Sat, 22 Feb 2020 00:59:10 +0000 (09:59 +0900)]
Update copyright year.
Bo Peng [Wed, 19 Feb 2020 06:19:53 +0000 (15:19 +0900)]
Doc: add release-notes.
Bo Peng [Wed, 19 Feb 2020 06:12:35 +0000 (15:12 +0900)]
Doc: update japanese documentation.
Muhammad Usama [Tue, 18 Feb 2020 12:23:10 +0000 (17:23 +0500)]
Disallowing the quorum aware failover option for the native replication mode.
In native replication mode, Pgpool-II is responsible for replicating the data
on all backend nodes, and if a node becomes quarantined then Pgpool-II stops
sending the writes to that node and when that quarantined node becomes available
again there is no way to figure out which portion of data was not replicated
during the quarantine period. This is dangerous since it can cause
data inconsistency.
So as per the discussion, we reached the conclusion to disallow failover require
consensus and quorum existence with the native replication mode so that backend
node should never get into quarantine when Pgpool-II is configured in the
replication mode.
Bo Peng [Tue, 18 Feb 2020 08:43:23 +0000 (17:43 +0900)]
Fix rewriting query errors in native replication mode.
per bug551.
Tatsuo Ishii [Tue, 18 Feb 2020 01:28:39 +0000 (10:28 +0900)]
Doc: clarify the session disconnection conditions while failover.
Bo Peng [Mon, 17 Feb 2020 13:36:42 +0000 (22:36 +0900)]
Update pgpool.spec file.
Bo Peng [Mon, 17 Feb 2020 13:14:53 +0000 (22:14 +0900)]
Doc: Fix documentation error regarding delegate_IP.
Tatsuo Ishii [Wed, 12 Feb 2020 04:01:22 +0000 (13:01 +0900)]
Update pgpool-recovery function definitions.
Tatsuo Ishii [Wed, 12 Feb 2020 02:46:52 +0000 (11:46 +0900)]
Doc: enhance description of enable-shared-relcache parameter.
Discussion: [pgpool-general: 6833] Re: Using standby pgpool instances
https://www.pgpool.net/pipermail/pgpool-general/2020-January/006891.html
Bo Peng [Wed, 12 Feb 2020 01:03:13 +0000 (10:03 +0900)]
Fix child process segfault after reload if "health_check_database" is empty.
per bug571.
Tatsuo Ishii [Mon, 10 Feb 2020 10:04:48 +0000 (19:04 +0900)]
Suppress unnecessary error message when there's no standby server.
Even of there's no standby server anymore, worker process keeps on
checking result row from pg_stat_replication(). If
pg_stat_replication() returns no row, the worker process complained it
every sr_check_period and the log was flooded by them. To prevent this
get_query_result() is changed to return -2 if there's no row in the
result. Also the error message in get_query_result() is downgraded
from LOG to DEBUG1. If -2 is returned and number of active standby is
less than 1 the caller does not complain any more.
Tatsuo Ishii [Sat, 8 Feb 2020 10:39:14 +0000 (19:39 +0900)]
Fix oversight to adopt PostgreSQL 12.
From PostgreSQL 12 WAL dir is renamed to "pg_wal". pgpool_setup should
have dealt with this.
Takuma Hoshiai [Tue, 4 Feb 2020 02:47:45 +0000 (11:47 +0900)]
Fix error messsage typo
Takuma Hoshiai [Tue, 4 Feb 2020 02:34:40 +0000 (11:34 +0900)]
Doc: fix some phrases
Bo Peng [Tue, 4 Feb 2020 00:04:05 +0000 (09:04 +0900)]
Doc: fix doc typo.
Tatsuo Ishii [Wed, 29 Jan 2020 08:02:24 +0000 (17:02 +0900)]
Remove debug lines.
Tatsuo Ishii [Wed, 29 Jan 2020 00:31:44 +0000 (09:31 +0900)]
Doc: fix typo in show pool_health_check_stats manual.
Bo Peng [Tue, 28 Jan 2020 06:49:54 +0000 (15:49 +0900)]
Doc: fix online-recovery doc errors.
Bo Peng [Tue, 28 Jan 2020 06:20:46 +0000 (15:20 +0900)]
Feature: Check if socket file exists at startup and remove them if PID file doesn't exist.
If the previuos socket files exist, pgpool startup fails due to bind() failire.
This commit is to remove socket files at startup if PID file doesn't exist.
Also, I found some messages are effectively ignorede because log system is not yet initialized at start point.
I changed them to standard fprintf(stderr...).
Bo Peng [Tue, 28 Jan 2020 02:18:00 +0000 (11:18 +0900)]
Change the sample follow_sh scipt %M %H paramater's order.
Bo Peng [Tue, 28 Jan 2020 01:58:11 +0000 (10:58 +0900)]
Doc: change the follow_master_command %M %H paramater's order.
Tatsuo Ishii [Mon, 27 Jan 2020 01:26:01 +0000 (10:26 +0900)]
Doc: add pool_health_check_stats.sgml.
Also tweak healthcheck.sgml and pool_health_check_stats.sgml (English).
Tatsuo Ishii [Sun, 26 Jan 2020 11:16:43 +0000 (20:16 +0900)]
Doc: add show pool_health_check_stats reference manual.
Forgot in the previous commit.
Tatsuo Ishii [Sun, 26 Jan 2020 11:01:18 +0000 (20:01 +0900)]
Add health check statistics collection/display feature.
The health check process now collects statistics data such as number
of total health check performed, number of health check retry count
and health check duration and so on in the shared memory area. This
commit also adds new "show pool_health_check_stats" SQL
command. Corresponding PCP command and pgpool_adm function will be
added in subsequent commit.
Tatsuo Ishii [Sun, 19 Jan 2020 11:36:48 +0000 (20:36 +0900)]
Fix occasional 008.dbredirect failure.
It seems "sleep 1" after reload is not enough. Let's sleep 10.
Tatsuo Ishii [Mon, 13 Jan 2020 13:39:47 +0000 (22:39 +0900)]
Unbreak notification response message treatment in 4.1.
From 4.1 for an optimization sake SimpleForwardToFrontend() does not
flush most type of messages. However there's an oversight regarding
"notification message" handling. This should have been flushed so that
frontend is immediately notified.
Per bug 573.
Tatsuo Ishii [Mon, 13 Jan 2020 09:15:24 +0000 (18:15 +0900)]
Docs: fix minor typos in enable_consensus_with_half_votes section.
Tatsuo Ishii [Sun, 12 Jan 2020 11:12:44 +0000 (20:12 +0900)]
Docs: fix minor typos in enable_consensus_with_half_votes section.
Tatsuo Ishii [Sat, 11 Jan 2020 11:48:01 +0000 (20:48 +0900)]
Fix 001.load_balance failure caused by previous commit.
Tatsuo Ishii [Fri, 10 Jan 2020 05:50:38 +0000 (14:50 +0900)]
Attempt to fix 001.load_balance test failure.
It is likely that sleep time after reload was not enough. Change them
from 1 second to 10 seconds.
Tatsuo Ishii [Fri, 10 Jan 2020 01:43:33 +0000 (10:43 +0900)]
Teach pgproto notification response message.
Now pgproto prints a upon receiving the message like this:
<= BE Notification response. pid: 28935 channel: aaa payload: "foo"
Tatsuo Ishii [Sat, 4 Jan 2020 01:30:22 +0000 (10:30 +0900)]
More fix for occasional regression test 003.failover failure.
Comparison between show pool_node result and expected file failed
because of replication delay (the expected file set 0 to replication
delay column.) Fix is, disabling replication delay.
Tatsuo Ishii [Tue, 31 Dec 2019 03:06:50 +0000 (12:06 +0900)]
Fix occasional regression test 003.failover failure.
The test compares the result of show pool_nodes against pre-computed
expected text file. After primary node goes down and old standby
promotes to primary, it is possible that streaming replication worker
process stores the replication state (async, streaming) in shared
memory before the failover but fails to update the state after the
failover. Fix is, replace "async", "streaming" with space characters
in the result file to match the expected file.
Tatsuo Ishii [Tue, 24 Dec 2019 12:27:42 +0000 (21:27 +0900)]
Fix occasional regression test failure of 008.dbredirect.
In the test several databases are created and subsequent tests expect
that those databases have been already replicated. But it is possible
that the replication has not been done at that point and makes the
test fails. Fix is, add check the existence of database and if it's
not replicated, sleep for a while and retry it (up to 5 times).
Tatsuo Ishii [Thu, 12 Dec 2019 07:33:18 +0000 (16:33 +0900)]
Fix replication delay worker segfault when application_name is an empty string.
The process calls do_query() to obtain the query result against
pg_stat_replication_view. If user sets application_name to an empty
string, the result data row packet length will be 0. However
do_query() did not consider the length == 0 case, which resulted in
giving NULL pointer to strcmp() which is called from the worker
process. That means the bug is not specific to this case (a new
feature added in Pgpool-II 4.1) but it potentially affects many other
places where do_query() gets called, although it had not been reported
in the field. So this fix should be applied to all supported branches.
Per bug 565.
Takuma Hoshiai [Tue, 3 Dec 2019 01:49:35 +0000 (10:49 +0900)]
Fix a display of parameter when using PGPOOL SHOW.
If show backend_flag parameter by PGPOOL SHOW command, 'ALWAYS_MASTER' config
wasn't displayed by it.
Bo Peng [Mon, 25 Nov 2019 09:16:21 +0000 (18:16 +0900)]
Add missing syslog setting.
Bo Peng [Fri, 15 Nov 2019 07:39:50 +0000 (16:39 +0900)]
Fix the missing syslog in configure file.
per bug557.
Bo Peng [Thu, 31 Oct 2019 07:35:35 +0000 (16:35 +0900)]
Doc: update release-note.
Bo Peng [Thu, 31 Oct 2019 00:11:03 +0000 (09:11 +0900)]
Fix incorrect query rewrite in replication mode.
Bo Peng [Wed, 30 Oct 2019 23:56:15 +0000 (08:56 +0900)]
Doc: Add release-note.
Bo Peng [Wed, 30 Oct 2019 09:10:04 +0000 (18:10 +0900)]
Add RHEL 8 support.
Bo Peng [Fri, 25 Oct 2019 08:22:22 +0000 (17:22 +0900)]
Fix incorrect query rewrite in replication mode.
For example:
- CREATE TABLE t1 AS SELECT now();
- SELECT now() INTO t1;
- WITH ins AS ( INSERT INTO t1 SELECT now()) SELECT;
Tatsuo Ishii [Wed, 23 Oct 2019 08:19:13 +0000 (17:19 +0900)]
Fix 028.watchdog_enable_consensus_with_half_votes test occasional timeout.
The test script set CHECK_TIME_WAIT=true so that next pgpool start is
not affected by remaining open TCP port of previous pgpool. However
with commit
d339cf86055b0cedaff2ab043ca474579660541f and
f92b7828c41bfeee17c25a91516412da0ce4c9a0, I suspect it is possible
that the problem was caused by pgpool actually was not terminated by
SIGTERM, so let's try to disable the CHECK_TIME_WAIT (if it's true,
the script takes extract time to finish) to not the test timeout
happen.
Tatsuo Ishii [Mon, 21 Oct 2019 04:10:12 +0000 (13:10 +0900)]
Fix health check time out.
Heal check time out could happen in several places:
1) connect system call
2) select system call
3) read system call
1) was ok but in 2) and 3) it was possible that it could go into
infinite loop in Pgpool-II 3.7 or later. This was due to a mistake
when health check process was modified to be separate process in 3.7,
and back patched to 3.7 and above.
Discussion:
https://www.pgpool.net/pipermail/pgpool-hackers/2019-October/003458.html
https://www.pgpool.net/pipermail/pgpool-hackers/2019-October/003459.html
Bo Peng [Wed, 16 Oct 2019 07:58:14 +0000 (16:58 +0900)]
Doc: update release date.
Bo Peng [Wed, 16 Oct 2019 01:07:58 +0000 (10:07 +0900)]
Doc: update 4.1 release-note.