[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