* New features
- ** Watchdog
+ ** Watchdog
- Add a new monitring method using heartbeat signal of UDP packet in
lifecheck. (Yugo Nagata)
- Add interlocking mechanism of exclusive failover/failback command
execution. (Yugo Nagata)
-
+
When using multiple pgpool-IIs with watchdog enabled, failover commands
(failover_command, failback_command, and follow_master_command) get
executed only at one pgpool-II.
-
+
Previously, these command got executed at all pgpool-IIs.
- Add authentication mechanism for watchdog packet communication.
(Yugo Nagata)
-
+
Watchdog packets (include heartbeat signal) from pgpool-II with wrong
authentication key are rejected. All pgpool-IIs must have the same key,
which is specified wd_authkey parameter in pgpool.conf. pgpool-II with
wrong authkey can't even start watchdog, because the startup packet is
rejected by other pgpool-IIs.
-
+
- Add clear_memqcache_on_escalation parameter. (Yugo Nagata)
-
+
If this is on, all the query caches on shared memory are cleared when
standby pgpool-II escalates to active.
This is aimed to prevent the new active pgpool-II from using inconsistent
query caches with the previous active.
-
+
- Add wd_escalation_command parameter. (Yugo Nagata)
-
+
This specifies command which is executed at escalation on the new active
pgpool-II server. The timing is just before virtual IP is brought up.
- Add parameters wd_lifecheck_dbname, wd_lifecheck_user, and
wd_lifecheck_password. (Yugo Nagata)
-
+
These parameters specify the database name, the user name, and password
used in query mode lifecheck of watchdog . Previously, these are hard
coded to use template1, recovery_user, and recovery_password.
- When delegate_IP parameter is emply, viertual IP is neither brought up
nor switched. (Yugo Nagata)
- This allows multi-master like configuration without virtual IP.
+ This allows multi-master like configuration without virtual IP.
+
+ - Add pcp_watchdog_info command (Yugo Nagata)
+
+ This is PCP command for retrieving the watchdog status.
** Others
- Add a tool called pgpool_setup to set up pgpool-II and PostgreSQL
temporary installation in current directory for *testing* purpose.
(Tatsuo Ishii)
-
+
usage: pgpool_setup [-m r|s][-n num_clusters][--no-stop]
-m s: create an installation as streaming replication mode.
(the default)
- Support installation method using CREATE EXTENSION for pgpool-recovery
and pgpool-regclass. (Tatsuo Ishii)
-
+
Older installtion method is still preserved.
Note: extension names are "pgpool_recovery" and "pgpool_regclass", not
- Add a function "pgpool_pgctl()" which enebles to execute
pg_ctl stop/restart/reload (except for start) by SQL. (Nozomi Anzai)
-
+
$ psql sales -c "select pgpool_pgctl('reload', 'fast')";
pgpool_pgctl
--------------
- Add shell scripts to install pgpool-II and pgpoolAdmin by RPM.
(Nozomi Anzai, Yugo Nagata)
-
+
To make the installer package execute getsources.sh, and the directory
named "work" will be created. And you rpmbuild each spec files in work/,
put RPMs into work/installer and make tar ball of work/installer.
The installer does not only install RPMs but also edit postgresql.conf,
pgpool.conf, pg_hba.conf, recovery.conf and scripts for failover and
online recovery.
-
+
This assumes two-nodes configuration and the install script have to be
executed in both nodes.
- - Add new parameter "search_primary_node_timeout".
+ - Add new parameter "search_primary_node_timeout".
(Muhammad Usama, Tatsuo Ishii)
-
+
The parameter specifies the maximum amount of time in seconds to
search for a primary node when a failover scenario occurs. Patch
contributed by Muhammad Usama. Japanese doc and slight editing of
- Consider timeout waiting for compeletion of failback request in on line
recovery. (Tatsuo Ishii)
-
+
This will prevent the situation that recovery operation continues forever
and we cannot even shutdown pgpool-II main process. This could happen
especially while executing follow master command.
- Fix bug with do_query which causes hung in extended protocol.
(Tatsuo Ishii)
-
+
This problem could occur when insert lock is enabled and
pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
details.
DELETE FROM t2 WHERE i = 0;
INSERT INTO t1(i) VALUES(1);
COMMIT;
-
+
SELECT * FROM t1;
-
+
At commit pgpool tries to delete cache for t2 but failes because
there's no oid table entry for t2. Problem is, it fails to check oid
table for t1. So cahce for t1 remains and the last SELECT incorrectly
returns cached data. Fix is, continuing to check oid table entries.
- This is reported in Bug track #58 by wms
+ This is reported in Bug track #58 by wms
http://www.pgpool.net/mantisbt/view.php?id=58
__________________________________________________________________
- Replace "sticky bit" to "setuid bit" in log message, comments and
funcation names. (Yugo Nagata)
-
+
These words were used mistakenly and caused confusion.
- Fix description on SSL in pool_hba.conf.sample. (Tatsuo Ishii)
- Allow to load balancing in an explicit transaction in replication mode.
(Tatsuo Ishii)
-
+
The condition to allow the load balancing is as follows:
1) replicate_select is off
2) no writing functions are used
- Consider timeout waiting for compeletion of failback request in on line
recovery (Tatsuo Ishii)
-
+
This will prevent the situation that recovery operation continues forever
and we cannot even shutdown pgpool-II main process. This could happen
especially while executing follow master command.
between platform. On Linux, this returns 2 and it is eventually harmless.
However, on Soraris, this returns 0 and it is indistinguishable from time
timeout, so watchdog wouldn't work correctly.
-
+
- Fix error when pgpool_regclass is not installed (Tatsuo Ishii)
The query used in pool_has_pgpool_regclass() fails if pgpool_regclass
- Fix bug with do_query which causes hung in extended protocol
(Tatsuo Ishii)
-
+
This problem could occur when insert lock is enabled and
pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
details.
DELETE FROM t2 WHERE i = 0;
INSERT INTO t1(i) VALUES(1);
COMMIT;
-
+
SELECT * FROM t1;
-
+
At commit pgpool tries to delete cache for t2 but failes because
there's no oid table entry for t2. Problem is, it fails to check oid
table for t1. So cahce for t1 remains and the last SELECT incorrectly
returns cached data. Fix is, continuing to check oid table entries.
- This is reported in Bug track #58 by wms
+ This is reported in Bug track #58 by wms
#58 query cache invalidation does not fire for multiple DML in transaction
http://www.pgpool.net/mantisbt/view.php?id=58
- Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii)
-
+
This is necessary to deal with clients which restricts schema search path
to pg_catalog only. Postgres_fdw is such a client.
- Fix a potential crash in pg_md5 command (Muhammad Usama)
-
+
- Fix a segmentation fault that occurs when on memory query cache enabled
and the query is issued in extended query mode and the result is too large
(Tatsuo Ishii)
#63 Child process was terminated by segmentation fault with memcached
http://www.pgpool.net/mantisbt/view.php?id=63
-
+
- Fix a segmentation fault of a child process that occurs when a startup
packet has no PostgreSQL user information (Yugo Nagata)
-
+
You can reproduce it by
-
+
$ psql -p 9999 -U ''
-
+
If enable_pool_hba is on, a child process terminates by segmentation
fault. Otherwise if enable_pool_hba is off, the error message is
-
+
ERROR: pool_discard_cp: cannot get connection pool for user (null)
database (null)
-
+
In both cases, psql terminates with no message on frontend.
-
+
In the fixed version, if PostgreSQL user is not specified in startup packet,
the message as following is output to both log and frontend. This is
the same behavior as PostgreSQL.
-
+
FATAL: no PostgreSQL user name specified in startup packet
- Fix memory allocation logic in extended query processing with on-memory
query cache enabled (Tatsuo Ishii)
-
+
When very long query string (> 1024 bytes) supplied in extended query
with bind parameters, it fails to allocate enough memory.
(Yugo Nagata)
- Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document
- (Yugo Nagata)
+ (Yugo Nagata)
- Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata)
-
+
When an invalid number is used, null value is passed as an arguments
of recovery script, and this causes a malfunction. In especially,
rsync may delete unrelated files in basebackup scripts.
* Bug fixes
- Fix connect_inet_domain_socket_by_port() to set more appropriate value
- for timeout parameter of select(2). (Tatsuo Ishii)
-
+ for timeout parameter of select(2). (Tatsuo Ishii)
+
Some platforms such as Solaris do not allow to specify too large
microseconds timeout value (>=1000000). So divide the timeout value to
seconds and microseconds.
- Fix connect_inet_domain_socket_by_port() to not return as normal when
interrupted by alarm. (Tatsuo Ishii)
-
+
This confuses health checking because connect_inet_domain_socket_by_port()
returns unsable fd. This makes detecting errors in health checking longer.
-
+
See the following for more details:
[pgpool-general: 1458]
- Fix long standing bug with timestamp rewriting code for processing
extended protocol. (Tatsuo Ishii)
-
+
Parse() allocate memory using palloc() while rewriting the parse
message. Problem is, the rewritten message was kept in the data which
is managed by pool_create_sent_message() etc. The function assumes
double free. To fix this, memory to store rewritten message is
allocated using session context. The bug was there since pgpool-II 3.0
was born.
-
+
Problem analysis and patch contributed by Naoya Anzai.
[pgpoolgenera-jp: 1146]. (in Japanese)
http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001145.html
- Fix bug with md5 auth long user name handling. (Tatsuo Ishii)
-
+
If user name is longer than 32 bytes, md5 authentication doesn't work.
Problem reported in [pgpool-general: 1526] by Thomas Martin.
-
+
[pgpool-general: 1526]
[pgPool-II 3.2.3] MD5 authentication and username longer than 32 characters.
http://www.pgpool.net/pipermail/pgpool-general/2013-March/001551.html
- Fix to calculate replication delay only if standby server is behind from
the primay server. (Yugo Nagata)
-
+
When the primary server is behind from standby server, negative value of
delay is calculated and the value is assigned to unsigned variable. It
causes a log message informing negative replication delay. And what is
worse, it also causes SELECT queries to be sent to the primary in load
balance even though there are no replication delay in fact.
-
+
The problem is reported and analyzed by Saitoh Hidenori in
- [pgpool-genera-jp: 1145].
-
+ [pgpool-genera-jp: 1145].
+
[pgpool-general-jp: 1145] (in Japanese)
http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
- pgpool-recovery adopts PostgreSQL 9.3. (Tatsuo Ishii)
-
+
Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
- [pgpool-hackers: 180]
+ [pgpool-hackers: 180]
compile error in ppool-recovery
http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
- Fix pool_has_pgpool_regclass() to check execute privilege of
pgpool_regclass(). (Tatsuo Ishii)
-
+
Even though pgpool_regclass() exists, if pgpool cannot execute the
function, the connection to backend hangs. You can reproduce the problem
by just dropping the execute privilege from pgpool_regclass and do some
insert in native replication mode.
-
+
The problem is reported in bugtrack #53.
#53 pgpool_regclas hangs all connections
- Date: 2013-04-04 13:35
+ Date: 2013-04-04 13:35
Reporter: tmandke
http://www.pgpool.net/mantisbt/view.php?id=53
fixed to "LOG: detect_postmaster_down_error: detect_error error", and so on.
- Remove root user check when watchdog is enabled. (Tatsuo Ishii)
-
+
Per discussion [pgpool-general: 1627] Re: watchdog root requirement.
[pgpool-general: 1627]
- Fix bug with on memory query cache in handling UPDATE/DELETE with table
alias. (Tatsuo Ishii)
-
+
If UPDATE/DELETE is with table alias (UPDATE t1 AS foo...) pgpool thinks
the table name is "t1 AS foo" and fails to invalidate query cache. This
is caused by _outRangeVar() called from nodeToString() which generates a
query string from RangeVar node in raw parse tree. The solution is removing
"AS foo" part from the output of the string.
-
+
Reported in bugtrack #56.
#56 UPDATE with alias does not discard cache
- Date: 2013-04-18 17:33
- Reporter: harukat
+ Date: 2013-04-18 17:33
+ Reporter: harukat
http://www.pgpool.net/mantisbt/view.php?id=56
===============================================================================
which is usually "public". (Tatsuo Ishii)
This makes pgpool to create caches for such a VIEW's query results,
- which of course should not be allowed.
+ which of course should not be allowed.
Problem reported and patch provided by jgentsch in bug id #30.
5) SELECT * FROM t1; -- query cache entry mistakenly created!
Problem is #3 creates relcache entry for t1, and #5 incorrecly uses it
- and believes that temp table t1 is not a temp table.
+ and believes that temp table t1 is not a temp table.
- Add a description about "-f" to help message. (Tatsuo Ishii)
- Add wd_hostname to pool_process_reporting.c. (Yugo Nagata)
- Otherwise, wd_hostname is not contained in results of SHOW pool_status and
+ Otherwise, wd_hostname is not contained in results of SHOW pool_status and
cp_pool_status.
- Fix connect_inet_domain_socket_by_port() to not error out when connect(2)
monitoring the pgpool port.It is reported in bug track #35.
#35 Authentication is timeout
- Reporter: tuomas
+ Reporter: tuomas
Date: 2012-11-20 11:54
http://www.pgpool.net/mantisbt/view.php?id=35
#45 LISTEN/NOTIFY doesn't work if cluster contains more then 1 node in
streaming replication mode
- Reporter: rpashin
+ Reporter: rpashin
Date: 2012-12-12 00:09
http://www.pgpool.net/mantisbt/view.php?id=45
before(so far, we have not heard any complaints on 3.1 or before).
- Fix connect_inet_domain_socket_by_port() to call select(2) rather than
- error out when connect(2) returns EINPROGESS or EALREADY error.
+ error out when connect(2) returns EINPROGESS or EALREADY error.
(Tatsuo Ishii)
When using non-blocking socket, despite the errors like
"Connection timed out", actually connection has been established.
To solve the problem we should use select(2) to wait for connection
establishing when connect(2) reports EINPROGRESS or EALREADY, instead
- of doing a retry tight loop.
+ of doing a retry tight loop.
This problem is reported in bug track #46 by mcousin.
#46 Watchdog failing to connect sometimes
- Reporter: mcousin
+ Reporter: mcousin
Date: 2012-12-15 01:01
http://www.pgpool.net/mantisbt/view.php?id=46
Date: Mon, 12 Nov 2012 15:58:29 -0800
http://www.sraoss.jp/pipermail/pgpool-general/2012-November/001198.html
- Patch provided by chads in bug track #48.
+ Patch provided by chads in bug track #48.
pthread_detach is being used wrong; causes pgpool to segfault.
- Reporter: chads
+ Reporter: chads
Date: 2013-01-16 05:44
http://www.pgpool.net/mantisbt/view.php?id=48
- Consider timeout waiting for compeletion of failback request in on line
recovery (Tatsuo Ishii)
-
+
This will prevent the situation that recovery operation continues forever
and we cannot even shutdown pgpool-II main process. This could happen
especially while executing follow master command.
- Fix bug with do_query which causes hung in extended protocol
(Tatsuo Ishii)
-
+
This problem could occur when insert lock is enabled and
pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
details.
deferred trigger.
- Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii)
-
+
This is necessary to deal with clients which restricts schema search path
to pg_catalog only. Postgres_fdw is such a client.
- Fix a potential crash in pg_md5 command (Muhammad Usama)
-
+
- Fix a segmentation fault of a child process that occurs when a startup
packet has no PostgreSQL user information (Yugo Nagata)
-
+
You can reproduce it by
-
+
$ psql -p 9999 -U ''
-
+
If enable_pool_hba is on, a child process terminates by segmentation
fault. Otherwise if enable_pool_hba is off, the error message is
-
+
ERROR: pool_discard_cp: cannot get connection pool for user (null)
database (null)
-
+
In both cases, psql terminates with no message on frontend.
-
+
In the fixed version, if PostgreSQL user is not specified in startup packet,
the message as following is output to both log and frontend. This is
the same behavior as PostgreSQL.
-
+
FATAL: no PostgreSQL user name specified in startup packet
- Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section
(Yugo Nagata)
- Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document
- (Yugo Nagata)
+ (Yugo Nagata)
- Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata)
-
+
When an invalid number is used, null value is passed as an arguments
of recovery script, and this causes a malfunction. In especially,
rsync may delete unrelated files in basebackup scripts.
- Fix long standing bug with timestamp rewriting code for processing
extended protocol. (Tatsuo Ishii)
-
+
Parse() allocate memory using palloc() while rewriting the parse
message. Problem is, the rewritten message was kept in the data which
is managed by pool_create_sent_message() etc. The function assumes
double free. To fix this, memory to store rewritten message is
allocated using session context. The bug was there since pgpool-II 3.0
was born.
-
+
Problem analysis and patch contributed by Naoya Anzai.
[pgpoolgenera-jp: 1146]. (in Japanese)
http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001145.html
- Fix bug with md5 auth long user name handling. (Tatsuo Ishii)
-
+
If user name is longer than 32 bytes, md5 authentication doesn't work.
Problem reported in [pgpool-general: 1526] by Thomas Martin.
-
+
[pgpool-general: 1526]
[pgPool-II 3.2.3] MD5 authentication and username longer than 32 characters.
http://www.pgpool.net/pipermail/pgpool-general/2013-March/001551.html
- Fix to calculate replication delay only if standby server is behind from
the primay server. (Yugo Nagata)
-
+
When the primary server is behind from standby server, negative value of
delay is calculated and the value is assigned to unsigned variable. It
causes a log message informing negative replication delay. And what is
worse, it also causes SELECT queries to be sent to the primary in load
balance even though there are no replication delay in fact.
-
+
The problem is reported and analyzed by Saitoh Hidenori in
- [pgpool-genera-jp: 1145].
-
+ [pgpool-genera-jp: 1145].
+
[pgpool-general-jp: 1145] (in Japanese)
http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
- pgpool-recovery adopts PostgreSQL 9.3. (Tatsuo Ishii)
-
+
Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
- [pgpool-hackers: 180]
+ [pgpool-hackers: 180]
compile error in ppool-recovery
http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
- Fix pool_has_pgpool_regclass() to check execute privilege of
pgpool_regclass(). (Tatsuo Ishii)
-
+
Even though pgpool_regclass() exists, if pgpool cannot execute the
function, the connection to backend hangs. You can reproduce the problem
by just dropping the execute privilege from pgpool_regclass and do some
insert in native replication mode.
-
+
The problem is reported in bugtrack #53.
#53 pgpool_regclas hangs all connections
- Date: 2013-04-04 13:35
+ Date: 2013-04-04 13:35
Reporter: tmandke
http://www.pgpool.net/mantisbt/view.php?id=53
This problem is reported in bug track #32 (by oleg_myrk) etc.
#32 PGPool hangs on pcp_attach/detach
- Reporter: oleg_myrk
+ Reporter: oleg_myrk
\e$B!!\e(BDate: 2012-10-24 00:01
http://www.pgpool.net/mantisbt/view.php?id=32
monitoring the pgpool port.It is reported in bug track #35 by tuomas.
#35 Authentication is timeout
- Reporter: tuomas
+ Reporter: tuomas
Date: 2012-11-20 11:54
http://www.pgpool.net/mantisbt/view.php?id=3
- 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.
+ 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
- Consider timeout waiting for compeletion of failback request in on line
recovery (Tatsuo Ishii)
-
+
This will prevent the situation that recovery operation continues forever
and we cannot even shutdown pgpool-II main process. This could happen
especially while executing follow master command.
- Fix bug with do_query which causes hung in extended protocol
(Tatsuo Ishii)
-
+
This problem could occur when insert lock is enabled and
pgpool_catalog.insert_lock exists, See [pgpool-general: 1684] for more
details.
deferred trigger.
- Fix to register pgpool_regclass in pg_catalog schema (Tatsuo Ishii)
-
+
This is necessary to deal with clients which restricts schema search path
to pg_catalog only. Postgres_fdw is such a client.
- Fix a potential crash in pg_md5 command (Muhammad Usama)
-
+
- Fix a segmentation fault of a child process that occurs when a startup
packet has no PostgreSQL user information (Yugo Nagata)
-
+
You can reproduce it by
-
+
$ psql -p 9999 -U ''
-
+
If enable_pool_hba is on, a child process terminates by segmentation
fault. Otherwise if enable_pool_hba is off, the error message is
-
+
ERROR: pool_discard_cp: cannot get connection pool for user (null)
database (null)
-
+
In both cases, psql terminates with no message on frontend.
-
+
In the fixed version, if PostgreSQL user is not specified in startup packet,
the message as following is output to both log and frontend. This is
the same behavior as PostgreSQL.
-
+
FATAL: no PostgreSQL user name specified in startup packet
- Move ssl_ca_cert and ssl_ca_cert_dir descriptions to the SSL section
(Yugo Nagata)
- Add ssl_ca_cert and ssl_ca_cert_dir descriptions to the japanese document
- (Yugo Nagata)
+ (Yugo Nagata)
- Fix to verify the backend node number in pcp_recovery_node (Yugo Nagata)
-
+
When an invalid number is used, null value is passed as an arguments
of recovery script, and this causes a malfunction. In especially,
rsync may delete unrelated files in basebackup scripts.
- Fix long standing bug with timestamp rewriting code for processing
extended protocol. (Tatsuo Ishii)
-
+
Parse() allocate memory using palloc() while rewriting the parse
message. Problem is, the rewritten message was kept in the data which
is managed by pool_create_sent_message() etc. The function assumes
double free. To fix this, memory to store rewritten message is
allocated using session context. The bug was there since pgpool-II 3.0
was born.
-
+
Problem analysis and patch contributed by Naoya Anzai.
[pgpoolgenera-jp: 1146]. (in Japanese)
http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001145.html
- Fix bug with md5 auth long user name handling. (Tatsuo Ishii)
-
+
If user name is longer than 32 bytes, md5 authentication doesn't work.
Problem reported in [pgpool-general: 1526] by Thomas Martin.
-
+
[pgpool-general: 1526]
[pgPool-II 3.2.3] MD5 authentication and username longer than 32 characters.
http://www.pgpool.net/pipermail/pgpool-general/2013-March/001551.html
- Fix to calculate replication delay only if standby server is behind from
the primay server. (Yugo Nagata)
-
+
When the primary server is behind from standby server, negative value of
delay is calculated and the value is assigned to unsigned variable. It
causes a log message informing negative replication delay. And what is
worse, it also causes SELECT queries to be sent to the primary in load
balance even though there are no replication delay in fact.
-
+
The problem is reported and analyzed by Saitoh Hidenori in
- [pgpool-genera-jp: 1145].
-
+ [pgpool-genera-jp: 1145].
+
[pgpool-general-jp: 1145] (in Japanese)
http://www.pgpool.net/pipermail/pgpool-general-jp/2013-March/001144.html
- pgpool-recovery adopts PostgreSQL 9.3. (Tatsuo Ishii)
-
+
Patch contributed by Asif Rehman. Slight editing by Tatsuo Ishii.
- [pgpool-hackers: 180]
+ [pgpool-hackers: 180]
compile error in ppool-recovery
http://www.pgpool.net/pipermail/pgpool-hackers/2013-April/000179.html
- Fix pool_has_pgpool_regclass() to check execute privilege of
pgpool_regclass(). (Tatsuo Ishii)
-
+
Even though pgpool_regclass() exists, if pgpool cannot execute the
function, the connection to backend hangs. You can reproduce the problem
by just dropping the execute privilege from pgpool_regclass and do some
insert in native replication mode.
-
+
The problem is reported in bugtrack #53.
#53 pgpool_regclas hangs all connections
- Date: 2013-04-04 13:35
+ Date: 2013-04-04 13:35
Reporter: tmandke
http://www.pgpool.net/mantisbt/view.php?id=53
- Fix child_exit() to not call send_frontend_exits() if there's no
connection pool. (Tatsuo Ishii)
-
+
Otherwise, it segfaults because send_frontend_exits() referes to objects
pointed to by pool_connection_pool. Per bug track #44 by tuomas.
#44 pgpool went haywire after slave shutdown triggering master failover
- Reporter: tuomas
+ Reporter: tuomas
Date: 2012-12-11 00:33
http://www.pgpool.net/mantisbt/view.php?id=44
monitoring the pgpool port.It is reported in bug track #35 by tuomas.
#35 Authentication is timeout
- Reporter: tuomas
+ Reporter: tuomas
Date: 2012-11-20 11:54
http://www.pgpool.net/mantisbt/view.php?id=35
- 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.
+ 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
* Incompatible changes
- In streaming replication, if delay_threshold is 0 or health
- checking is disabled, the delay checking is not performed.
+ checking is disabled, the delay checking is not performed.
This is the behaviour according to a description of the
pgpool-II manual. But, so far the delay checking was performed
even if health checking was disabled(Guillaume Lelarge)
we check the buffer has any pending data by using SSL_pending() before
calling select(2).
- See thread [Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode for
+ See thread [Pgpool-general] Fwd: PGPOOL II 2.3.3 hang in ssl mode for
more details.
- Fix bug with pcp_check_fd()'s timeout handling. (Tatsuo Ishii)
- Make timestamp rewriting schema aware. (Tatsuo Ishii)
- - Do not rewrite statement which accesses columns having now() etc. as the
+ - Do not rewrite statement which accesses columns having now() etc. as the
default value but the data type are not timestamp etc. (Tatsuo Ishii)
Otherwise we have an error in DMLS. See:
* Bug fixes
- Fix occasional hangup in extend protocol + master/slave mode,
- row mode or connection pool mode. Back patch from 2.3
+ row mode or connection pool mode. Back patch from 2.3
tree(Toshihiro Kitagawa)
- Fix long standing bug since pgpool-II 1.0 which causes
Noguer)
- Do not force replication of DEALLOCATE if operated in
- master/slave mode. Now that pgpool do not execute PARSE in all
+ master/slave mode. Now that pgpool do not execute PARSE in all
nodes, this was pointless and caused problem (kind mismatch
when executing DEALLOCATE) (Tatsuo Ishii)
- - Fix crash with show pool_status when there many (more than 18)
+ - Fix crash with show pool_status when there many (more than 18)
DB nodes(Tatsuo Ishii)
- Enhance "kind mismatch" message. If kind is ERROR or NOTICE,
<h1>License<a name="license"></a></h1>
<p>
-Copyright (c) 2003-2013 PgPool Global Development Group
+Copyright (c) 2003-2013 PgPool Global Development Group
Permission to use, copy, modify, and distribute this software and
its documentation for any purpose and without fee is hereby
Without this, handling of duplicate table names in different schema
might cause trouble (temporary tables aren't a problem).
</p>
- <p>
+ <p>
<pre>
cd pgpool-II-x.x.x/sql/pgpool-regclass
make
make install
</pre>
- </p>
- <p>
+ </p>
+ <p>
After this:
- <p>
+ <p>
<pre>
psql -f pgpool-regclass.sql template1
</pre>
- </p>
- <p>
+ </p>
+ <p>
or
- <p>
+ <p>
<pre>
psql template1
CREATE EXTENSION pgpool_regclass;
<dt><a name="SEARCH_PRIMARY_NODE_TIMEOUT"></a>search_primary_node_timeout <span class="version">V3.3 -</span></dt>
<dd>
<p>The parameter specifies the maximum amount of time in seconds to search
- for a primary node when a failover scenario occurs.
- The default value for the parameter is 10.
- pgpool-II will search for the primary node for the amount of time given in case of
- failover before giving up trying to search for a primary node.
- 0 means keep trying forever.
- This parameter will be ignored if running in other than streaming replication mode.
+ for a primary node when a failover scenario occurs.
+ The default value for the parameter is 10.
+ pgpool-II will search for the primary node for the amount of time given in case of
+ failover before giving up trying to search for a primary node.
+ 0 means keep trying forever.
+ This parameter will be ignored if running in other than streaming replication mode.
</p>
<p>
You need to reload pgpool.conf if you change search_primary_node_timeout.
In heartbeat mode, watchdog monitors other pgpool-II processes by using heartbeat signal.
Watchdog receives heartbeat signals sent by other pgpool-II periodically.
If there are no signal for a certain period, watchdog regards this as failure of the pgpool-II.
- For redundancy you can use multiple network connections for heartbeat exchange between pgpool-IIs.
- This is the default mode and recommended.
+ For redundancy you can use multiple network connections for heartbeat exchange between pgpool-IIs.
+ This is the default mode and recommended.
</li>
<li>
In query mode, watchdog monitors pgpool-II's service rather than process.
watchdog sends queries to other pgpool-II and checks the response.
- Note that this method requires connections from other pgpool-IIs, so it would fail motoring if
- <a href="#NUM_INIT_CHILDREN">num_init_children </a>isn't large enough.
- This mode is deprecated and left for backward compatibility.
+ Note that this method requires connections from other pgpool-IIs, so it would fail motoring if
+ <a href="#NUM_INIT_CHILDREN">num_init_children </a>isn't large enough.
+ This mode is deprecated and left for backward compatibility.
</li>
</ul>
<p>
Specifies the virtual IP address (VIP) of pgpool-II that is connected from
client servers (application servers etc.).
When a pgpool-II is switched from standby to active, the pgpool-II takes over this VIP.
- If this option is emply, virtual IP is never brought up.
+ If this option is emply, virtual IP is never brought up.
</p>
<p>
You need to restart pgpool-II if you change this value.
<dd>
<p>
This option specifies the port number of destination of heartbeat signals
- which is specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
+ which is specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
This is usually the same value as <a href="WD_HEARTBEAT_PORT">wd_heartbeat_port</a>
You must use another value if the port number is unusable on a certain host or
- there are more than two pgpool-IIs in a host.
+ there are more than two pgpool-IIs in a host.
The number at the end of the parameter name is referred as "destination number",
and it starts from 0.
This works only heartbeat mode.
<dd>
<p>
This option specifies the network device name for sending heartbeat signals to
- destination specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
+ destination specified by <a href="HEARTBEAT_DESTINATION">heartbeat_destinationX</a>.
You can use the same device for different distinations.
The number at the end of the parameter name is referred as "destination number",
and it starts from 0.
This works only heartbeat mode.
- In addition, this works only when pgpool-II has root privilege and are running on Linux,
- because this uses SO_BINDTODEVICE socket option.
+ In addition, this works only when pgpool-II has root privilege and are running on Linux,
+ because this uses SO_BINDTODEVICE socket option.
</p>
<p>
You need to restart pgpool-II if you change this value.
<td>retrieves the number of nodes</td></tr>
<tr><th><a href="#pcp_node_info">pcp_node_info</a></th>
<td>retrieves the node information</td></tr>
+<tr><th><a href="#pcp_watchdog_info">pcp_watchdog_info</a></th>
+ <td>retrieves the watchdog information</td></tr>
<tr><th><a href="#pcp_proc_count">pcp_proc_count</a></th>
<td>retrieves the process list</td></tr>
<tr><th><a href="#pcp_proc_info">pcp_proc_info</a></th>
<p>Specifying an invalid node ID will result in an error with exit
status 12, and BackendError will be displayed.</p>
+<h3><a name="pcp_watchdog_info"/></a>pcp_watchdog_info</h3>
+
+<pre>
+Format:
+pcp_watchdog_info _timeout_ _host_ _port_ _userid_ _passwd_ [_watchdogid_]
+</pre>
+
+<p>
+Displays the watchdog status of the pgpool-II.
+_watchdogid_ is the index of other_pgpool_hostname parameter in pgpool.conf.
+If this is omitted, display the watchdog status of the pgpool-II specified by _host_:_port_.
+Here is an output example:
+</p>
+
+<pre>
+$ pcp_watchdog_info 10 localhost 9898 postgres hogehoge 0
+host1 9999 9000 2
+
+The result is in the following order:
+1. hostname
+2. port number for pgpool-II
+3. port number for watchdog
+4. watchdog Status
+
+Status is represented by a digit from [1 to 4].
+1 - watchdog is not started
+2 - Standby: not holding the virtual IP
+3 - Active: holding the virtual IP
+4 - Down
+</pre>
+<p>
+The load balance weight is displayed in normalized format.
+</p>
+
+<p>Specifying an invalid watchdog ID will result in an error with exit
+status 12, and BackendError will be displayed.</p>
+
<h3 id="pcp_proc_count">pcp_proc_count</h3>
<p>
<pre>
<h1>License<a name="license"></a></h1>
<p>
-Copyright (c) 2003-2013 PgPool Global Development Group
+Copyright (c) 2003-2013 PgPool Global Development Group
Permission to use, copy, modify, and distribute this software and
its documentation for any purpose and without fee is hereby
make
make install
</pre>
- <p>
+ <p>
この後に以下か、
- <p>
+ <p>
<pre>
psql -f pgpool-regclass.sql template1
</pre>
- </p>
- <p>
+ </p>
+ <p>
または
- <p>
+ <p>
<pre>
psql template1
CREATE EXTENSION pgpool_regclass;
</pre>
- <p>
+ <p>
を実行します。
- </p>
+ </p>
<p>
pgpool-regclass.sqlまたはCREATE EXTENSIONの実行は、pgpool-II経由で利用するデータベース毎に必要になります。
ただし、template1データベースに対して"psql -f pgpool-regclass.sql template1"またはCREATE EXTENSIONを実行後に作成されたデータベースでは、新たにpgpool-regclass.sqlまたはCREATE EXTENSIONを実行する必要はありません。
</p>
</dd>
- <dt><a name="SEARCH_PRIMARY_NODE_TIMEOUT"></a>search_primary_node_timeout <span class="version">V3.3 -</span></dt>
+ <dt><a name="SEARCH_PRIMARY_NODE_TIMEOUT"></a>search_primary_node_timeout <span class="version">V3.3 -</span></dt>
<dd>
<p>このパラメータはフェイルオーバーが起きた時にプライマリノードを検索する際のタイムアウト時間を秒単位で指定します。
- デフォルト値は10です。
- pgpool-IIは、フェイルオーバの際にここで指定した時間プライマリノードを検索し続けます。
- 0を指定すると、永久に検索し続けます。
- このパラメータはストリーミングレプリケーションモードで運用している場合以外は無視されます。
+ デフォルト値は10です。
+ pgpool-IIは、フェイルオーバの際にここで指定した時間プライマリノードを検索し続けます。
+ 0を指定すると、永久に検索し続けます。
+ このパラメータはストリーミングレプリケーションモードで運用している場合以外は無視されます。
</p>
<p>
- search_primary_node_timeoutを変更した場合は、pgpool.confの再読込が必要です。
+ search_primary_node_timeoutを変更した場合は、pgpool.confの再読込が必要です。
</p>
</dd>
-
+
</dl>
<h3>Failover and failback</h3>
<dt><a name="SSL_CA_CERT"></a>ssl_ca_cert</dt>
<dd>
<p>
- 1 つ以上の CA ルート証明書を格納している PEM 形式ファイルのパスを指定します。
- このファイルはバックエンドサーバ証明書の検証に用いられます。
- このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CAfile</code> オプションと同様の機能を提供します。
+ 1 つ以上の CA ルート証明書を格納している PEM 形式ファイルのパスを指定します。
+ このファイルはバックエンドサーバ証明書の検証に用いられます。
+ このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CAfile</code> オプションと同様の機能を提供します。
</p>
<p>
- デフォルトでは値が設定されておらず検証は行われません。
- このオプションが設定されていない場合においても、<code>ssl_ca_cert_dir</code> オプション
- が設定されている場合には検証が行われます。
+ デフォルトでは値が設定されておらず検証は行われません。
+ このオプションが設定されていない場合においても、<code>ssl_ca_cert_dir</code> オプション
+ が設定されている場合には検証が行われます。
</p>
</dd>
<dt><a name="SSL_CA_CERT_DIR"></a>ssl_ca_cert_dir</dt>
<dd>
<p>
- PEM 形式の CA 証明書ファイルを格納しているディレクトリのパスを指定します。
- これらのファイルはバックエンドサーバ認証の検証に用いられます。
- このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CApath</code> オプションと同様の機能を提供します。
+ PEM 形式の CA 証明書ファイルを格納しているディレクトリのパスを指定します。
+ これらのファイルはバックエンドサーバ認証の検証に用いられます。
+ このオプションは OpenSSL の <code>verify(1)</code> コマンドにおける <code>-CApath</code> オプションと同様の機能を提供します。
</p>
<p>
- デフォルトでは値が設定されておらず検証は行われません。
- このオプションが設定されていない場合においても、<code>ssl_ca_cert</code> オプション
- が設定されている場合には検証が行われます。
+ デフォルトでは値が設定されておらず検証は行われません。
+ このオプションが設定されていない場合においても、<code>ssl_ca_cert</code> オプション
+ が設定されている場合には検証が行われます。
</p>
</dd>
<li>
ハートビートモードでは、watchdog はハートビート信号を用いて 他の pgpool-II プロセスの死活監視を行います。
watchdog は、他の pgpool-II の watchdog より定期的に送られるハートビート信号を受け取り、これが一定期間以上途切れた場合には当該 pgpool-II プロセスに障害が発生したと判断します。
- 冗長性を高めるために、複数のネットワークを用いたハートビート交換が可能です。
- デフォルトではこのモードで動作し、これが推奨設定です。
+ 冗長性を高めるために、複数のネットワークを用いたハートビート交換が可能です。
+ デフォルトではこのモードで動作し、これが推奨設定です。
</li>
<li>
クエリモードでは、watchdog は pgpool-II のプロセスではなく「サービス」の応答を監視します。
このモードでは、監視対象の pgpool-II にクエリを発行しその応答をチェックします。
- この方法では他の pgpool-II から接続を受ける必要があるため、<a href="NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
- これは非推奨の監視方法であり、下位互換のために残されています。
+ この方法では他の pgpool-II から接続を受ける必要があるため、<a href="NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
+ これは非推奨の監視方法であり、下位互換のために残されています。
</li>
</ul>
<p>
<dd>
<p>
ハートビート信号の送り先を、ホスト名か IP で指定します。
- 複数の送り先が指定可能です。
+ 複数の送り先が指定可能です。
数値の部分は送り先の番号です。0 からの連番にします。
ハートビートモードの場合のみ有効です。
</p>
数値の部分は送り先の番号です。デバイス毎に 0 からの連番にします。
複数の異なる送り先に同じデバイスを設定することが可能です。
ハートビートモードの場合のみ有効です。
- また、SO_BINDTODEVICE ソケットオプションを使用しているため、pgpool-II が Linux で root 権限で起動している場合のみ有効です。
+ また、SO_BINDTODEVICE ソケットオプションを使用しているため、pgpool-II が Linux で root 権限で起動している場合のみ有効です。
</p>
<p>
このパラメータを変更した時には pgpool-II を再起動してください。
<td>ノード数を取得する</td></tr>
<tr><th><a href="#pcp_node_info">pcp_node_info</a></th>
<td>ノード情報を取得する</td></tr>
+<tr><th><a href="#pcp_watchdog_info">pcp_watchdog_info</a></th>
+ <td>watchdog 情報を取得する <span class="version">V3.3 ~</span></td></tr>
<tr><th><a href="#pcp_proc_count">pcp_proc_count</a></th>
<td>プロセス一覧を取得する</td></tr>
<tr><th><a href="#pcp_proc_info">pcp_proc_info</a></th>
定義されていないノードIDを指定するとBackendErrorと表示され、終了コード12で終了します。
</p>
+<h3><a name="pcp_watchdog_info"></a>pcp_watchdog_info</h3>
+<pre>
+書式:
+pcp_watchdog_info _timeout_ _host_ _port_ _userid_ _passwd_ [_watchdogid_]
+</pre>
+
+<p>
+pgpool-IIの pgpool.conf の watchdog セクションで定義された pgpool-II の watchdog ステータスを表示します。
+_watchdogid_ は other_pgpool_hostname パラメータの添字です。省略された場合には、_host_:_port_ で動作している
+pgpool-II の watchdog ステータスが表示されます。出力結果は以下の例の通りです。
+</p>
+
+<pre>
+ex)
+$ pcp_watchdog_info 10 localhost 9898 postgres hogehoge 0
+host1 9999 9000 2
+
+結果は以下の順の通りです。
+1. pgpool-II のホスト名
+2. pgpool-II ポート番号
+3. watchdog ポート番号
+4. watchdog ステータス
+
+ステータスは[1..4]までの数字で表わされます。各数字の意味は:
+1 - 初期化時のみに表われる。指定された pgpool-II が未起動の場合に表示される。
+2 - スタンバイ: 仮想 IP を保持していない
+3 - アクティブ: 仮想 IP を保持している
+4 - ダウン
+</pre>
+
+<p>
+定義されていない watchdog IDを指定するとBackendErrorと表示され、終了コード12で終了します。
+</p>
<h3 id="pcp_proc_count">pcp_proc_count</h3>
<p>
<p> 以下は全て watchdog に関する変更です。詳細は以下の<a href="3.3_new_features">新機能</a>の項目を参照してください。</p>
<ul>
- <li>デフォルトの監視方法がクエリモードからハートビートモードに変更されました。</li>
+ <li>デフォルトの監視方法がクエリモードからハートビートモードに変更されました。</li>
- <li>failover/failback コマンドが1つの pgpool-II でのみ実行されるようになりました。</li>
+ <li>failover/failback コマンドが1つの pgpool-II でのみ実行されるようになりました。</li>
<li>デフォルトで、アクティブ pgpool-II への昇格時には共有メモリ内のクエリキャッシュを全て削除するようになりました。</li>
ハートビートモードは今回新しく追加された方法です。
このモードでは、watchdog はハートビート信号を用いて 他の pgpool-II プロセスの死活監視を行います。
watchdog は、他の pgpool-II の watchdog より定期的に送られるハートビート信号を受け取り、これが一定期間以上途切れた場合にはその pgpool-II プロセスに障害が発生したと判断します。
- 冗長性を高めるため、複数のネットワーク用いたハートビート交換が可能です。
- デフォルトではこのモードで動作し、これが推奨設定です。
+ 冗長性を高めるため、複数のネットワーク用いたハートビート交換が可能です。
+ デフォルトではこのモードで動作し、これが推奨設定です。
</p>
<p>
クエリモードでは従来と同じ動作になります。このモードではwatchdog は pgpool-II のプロセスではなく「サービス」の応答を監視します。
このモードでは、監視対象の pgpool-II にクエリを発行しその応答をチェックします。
- この方法では他の pgpool-II から接続を受ける必要があるため、<a href="#NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
- これは非推奨の監視方法であり、下位互換のために残されています。
+ この方法では他の pgpool-II から接続を受ける必要があるため、<a href="#NUM_INIT_CHILDREN">num_init_children</a> が十分大きくない場合には監視が失敗する場合があることに注意してください。
+ これは非推奨の監視方法であり、下位互換のために残されています。
</p>
<ul>
<p>
<dt>wd_lifeccheck_dbname, wd_lifecheck_user, wd_lifecheck_password パラメータを追加しました。(Yugo Nagata)
</dt>
<dd>
-<p>
+<p>
これらのパラメータは、クエリモードで監視の際に使用するデータベース名、ユーザ名、パスワードを提要します。以前はそれぞれ templat1, recovery_user, recovery_password が使われていました。
</p>
</dd>
</p>
</dd>
+<dt>pcp_watchdog_info コマンドを追加しました。(Yugo Nagata)
+</dt>
+<dd>
+<p>
+これは watchdog ステータスを取得する pcp コマンドです。
+</p>
+</dd>
+
</dl>
</li>
<li>その他
</p>
<pre>
usage: pgpool_setup [-m r|s][-n num_clusters][--no-stop]
- -m s: ストリームレプリケーションモードで構築(デフォルト)
+ -m s: ストリームレプリケーションモードで構築(デフォルト)
-m r: ネイティブレプリケーションモードで構築
-n num_clusters: num_clusters 台で PostgreSQL データベースクラスタノードを作成
- --no-stop: セットアップ終了後に pgpool-II, PostgreSQL を終了しない
+ --no-stop: セットアップ終了後に pgpool-II, PostgreSQL を終了しない
</pre>
</dd>
<dd>
<p>
getsources.sh を実行することで作成された work/installer に RPM ファイルをコピーし、
-このディレクトリを tar ボールで固めたものがインストーラパッケージとなります。
+このディレクトリを tar ボールで固めたものがインストーラパッケージとなります。
このインストーラは、RPM をインストールするだけではなく、postgresql.conf, pgpool.conf, pg_hba.conf
recovery.conf, ファイルオーバやオンラインリカバリ用のスクリプトの設定も行います。
</p>
md5認証で長いユーザ名を処理する際のバグを修正しました。(Tatsuo Ishii)
<p>
ユーザ名が 32 バイトより長い場合、md5 認証が動作していませんでした。
- この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
+ この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
</p>
<blockquote>
[pgpool-general: 1526]<br />
<li>detect_postmaster_down_error() のエラーメッセージを修正しました。(Tatsuo Ishii)
<p>
- 例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
- "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
+ 例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
+ "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
</p>
</li>
<li>チュートリアル</li>
<p><a href="#memqcache">オンメモリクエリキャッシュ</a> と <a href="#watchdog">Watchdog 機能</a>
- のチュートリアルを作成しました。(Nozomi Anzai)</p>
+ のチュートリアルを作成しました。(Nozomi Anzai)</p>
</ul>
md5認証で長いユーザ名を処理する際のバグを修正しました。(Tatsuo Ishii)
<p>
ユーザ名が 32 バイトより長い場合、md5 認証が動作していませんでした。
- この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
+ この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
</p>
<blockquote>
[pgpool-general: 1526]<br />
<li>detect_postmaster_down_error() のエラーメッセージを修正しました。(Tatsuo Ishii)
<p>
- 例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
- "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
+ 例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
+ "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
</p>
</li>
<li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。
(Yugo Nagata)
-<p>
+<p>
この問題は [pgpool-general: 1167] で Will Ferguson さんによって報告されました。
</p>
<blockquote>
md5認証で長いユーザ名を処理する際のバグを修正しました。(Tatsuo Ishii)
<p>
ユーザ名が 32 バイトより長い場合、md5 認証が動作していませんでした。
- この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
+ この問題は [pgpool-general: 1526] で Thomas Martin さんにより報告されました。
</p>
<blockquote>
[pgpool-general: 1526]<br />
<li>detect_postmaster_down_error() のエラーメッセージを修正しました。(Tatsuo Ishii)
<p>
- 例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
- "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
+ 例えば、"LOG: detect_stop_postmaster_error: detect_error error" を
+ "LOG: detect_postmaster_down_error: detect_error error" に修正するなどです。
</p>
</li>
</p>
</li>
-<li>ストリーミングレプリケーションモードでレプリケーション遅延が大きくなったときに、
+<li>ストリーミングレプリケーションモードでレプリケーション遅延が大きくなったときに、
"portal not found" エラーが発生するバグを修正しました。 (Tatsuo Ishii)
<p>
これは delay_threshold が導入以来、ずっと存在していたバグです。
<li>pg_md5 で、ユーザからのパスワード入力の後には改行するように修正しました。 (Yugo Nagata)</li>
-<li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。
+<li>watchdog のポート番号が既に使用されていた場合にエラーメッセージを出力するよう修正しました。
(Yugo Nagata)
-<p>
+<p>
この問題は [pgpool-general: 1167] で Will Ferguson さんによって報告されました。
</p>
<blockquote>
<li>pool_read() が不正なパケットを読み込んだ場合に、read_startup_packet() がアラームクロック
をリセットして StartupPacket を解放するよう修正しました。 (Nozomi Anzai)
<p>
- 修正前は、pgpool ポートの監視を行うプログラムの接続により、認証のタイムアウトが発生していました。
+ 修正前は、pgpool ポートの監視を行うプログラムの接続により、認証のタイムアウトが発生していました。
この問題は、バグトラック #35 で報告されました。
</p>
<blockquote>
#35 Authentication is timeout<br />
- Reporter: tuomas
+ Reporter: tuomas
Date: 2012-11-20 11:54
<a href="http://www.pgpool.net/mantisbt/view.php?id=35">
http://www.pgpool.net/mantisbt/view.php?id=35</a>
<p>
このポインタは事前に memset() によって初期化されているため、実際にはこのバグによる害は
ありませんでした。
-</p>
+</p>
</li>
<li>ヘルプメッセージに -f オプションの説明を追加しました。 (Tatsuo Ishii)</li>
<h3>バグ修正</h3>
<p>
</p><ul>
- <li>pgpool-regclass()をPostgreSQL 8.0以降でコンパイルできるように修正しました。7.4はまだエラーが出ます(Tatsuo Ishii)
+ <li>pgpool-regclass()をPostgreSQL 8.0以降でコンパイルできるように修正しました。7.4はまだエラーが出ます(Tatsuo Ishii)
</li><li>ストリーミングレプリケーション構成で/*NO LOAD BALANCE*/コメントを使用したときに
ハングアップする可能性を修正しました(Toshihiro Kitagawa)
</li><li>Flush(H)メッセージやCloseComplete(C)メッセージを受信したときのハングアップを修正しました(Toshihiro Kitagawa)
<h2>2.0.1 (hikitsuboshi) 2007/11/21</h2>
<ul>
<li> UPDATE もしくは DELETE を実行するとプロセスがダウンする不具合を
- 修正しました。(Yoshiyuki Asaba)
+ 修正しました。(Yoshiyuki Asaba)
</li><li> <a href="#MASTER_SLAVE_MODE">master_slave</a> を true に設定している場合に、SQL 構文エラーを検知
した時にマスタにのみそのクエリを送信するようにしました。(Yoshiyuki Asaba)
</li></ul>
<li> 新しく <a href="AUTHENTICATION_TIMEOUT">authentication_timeout</a> という
パラメータを追加しました。(Yoshiyuki Asaba)
<ul>
- <li>このパラメータでは認証時間のタイムアウトを設定します。
+ <li>このパラメータでは認証時間のタイムアウトを設定します。
</li><li>デフォルト値は 60 (1 分)です。
</li></ul>
</li><li> スタートアップパケットの長さが 10000 バイト越えている場合には、接続を切断するようにしました。(Yoshiyuki Asaba)