[pgpool-committers: 701] pgpool: Fix hung up while repeating pcp_attach_node and pcp_detatch_nod
Tatsuo Ishii
ishii at postgresql.org
Thu Nov 15 00:08:46 JST 2012
Fix hung up while repeating pcp_attach_node and pcp_detatch_node
reported in bug track #32 etc. When node status is changed by
pcp_attach_node and pcp_detatch_node, failover() sends SIGUSR1 to
pcp_child process expecting it exits to refresh node status. In this
situation lots of pgpool children exit and produce SIGCHLD as
well. The SIGCHLD handler reaper() tries catch all SIGCHLD but
sometimes it fails depending on the system load and timing. If SIGCHLD
produced by pcp child is not caught, the process becomes zombie and
never restarted. The fix is, in failover() after sending SOGUSR1 to
pcp child, issue waitpid() to catch the pcp child exit event and
restart new pcp child process.
Branch
------
V3_1_STABLE
Details
-------
http://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=73601a5ca78753d1cd3ed6151497062e99cd8120
Modified Files
--------------
main.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
More information about the pgpool-committers
mailing list