[pgpool-committers: 702] 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_2_STABLE
Details
-------
http://git.postgresql.org/gitweb?p=pgpool2.git;a=commitdiff;h=984265c8a7b69cf41149f1ad10ce73f959d8dfc2
Modified Files
--------------
main.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
More information about the pgpool-committers
mailing list