<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello Pgpool support,<o:p></o:p></p>
<p class="MsoNormal">I am using Pgpool 3.3.1 in our production database, with master-slave feature &#43; health check.<o:p></o:p></p>
<p class="MsoNormal">Today and not for the first time, we encountered a situation in which Pgpool &#8220;decided&#8221; to do a failover after it has lost connectivity to the master node, without the retry logic that should be when using health-check mode.<o:p></o:p></p>
<p class="MsoNormal">Here is the Pgpool log from the failure time:<o:p></o:p></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 0 backend pid: 44867 statement: C message<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 0 backend pid: 44867 statement: B message<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 1 backend pid: 26169 statement: B message<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 0 backend pid: 44867 statement: Execute: ROLLBACK<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 1 backend pid: 26169 statement: Execute: ROLLBACK<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 0 backend pid: 44867 statement: Parse: SELECT 1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 0 backend pid: 44867 statement: B message<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 0 backend pid: 44867 statement: D message<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:06 pgpool pgpool[22795]: DB node id: 0 backend pid: 44867 statement: Execute: SELECT 1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:09 pgpool pgpool[2306]: connect_inet_domain_socket: gethostbyname() failed: Unknown host host: pnmpg3.sj.peer39.com<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:09 pgpool pgpool[2306]: connection to pnmpg3.sj.peer39.com(5432) failed<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:09 pgpool pgpool[2306]: new_connection: create_cp() failed<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:09 pgpool pgpool[2306]: degenerate_backend_set: 0 fail over request from pid 2306<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:09 pgpool pgpool[32118]: starting degeneration. shutdown host pnmpg3.sj.peer39.com(5432)<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:09 pgpool pgpool[32118]: Restart all children<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:09 pgpool pgpool[32118]: execute command: /etc/pgpool-II/failover.sh 0 &quot;pnmpg3.sj.peer39.com&quot; 5432 /var/lib/pgsql/9.2/data 1 0 &quot;pnmpg4.sj.peer39.com&quot; 0<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:19 pgpool pgpool[32118]: find_primary_node_repeatedly: waiting for finding a primary node<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:35 pgpool pgpool[32118]: failover: set new primary node: -1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:35 pgpool pgpool[32118]: failover: set new master node: 1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:35 pgpool pgpool[32233]: worker process received restart request<o:p></o:p></span></p>
<p class="MsoNormal"><span style="background:silver;mso-highlight:silver">Mar&nbsp; 4 16:35:35 pgpool pgpool[32118]: failover done. shutdown host pnmpg3.sj.peer39.com(5432)</span><o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Is this a normal behavior or is it a bug?? If it is normal, Is there a way to modify it?<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Pgpool enabled features:<o:p></o:p></p>
<p style="margin:3.75pt;background:white"><span style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">[ mode ] Master Slave mode<o:p></o:p></span></p>
<p style="margin:3.75pt;background:white;orphans: auto;text-align:start;widows: auto;-webkit-text-stroke-width: 0px;word-spacing:0px">
<span style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">[ healthcheck ] every 40 seconds / retry upto 3 counts<o:p></o:p></span></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Partial pgpool.conf:<o:p></o:p></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i># POOLS<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i># - Pool size -<o:p></o:p></i></p>
<p class="MsoNormal"><i>num_init_children = 50<o:p></o:p></i></p>
<p class="MsoNormal"><i>max_pool = 1<o:p></o:p></i></p>
<p class="MsoNormal"><i># - Life time -<o:p></o:p></i></p>
<p class="MsoNormal"><i>child_life_time = 50<o:p></o:p></i></p>
<p class="MsoNormal"><i>child_max_connections = 0<o:p></o:p></i></p>
<p class="MsoNormal"><i>connection_life_time = 1800<o:p></o:p></i></p>
<p class="MsoNormal"><i>client_idle_limit = 0<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i># MASTER/SLAVE MODE<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i>master_slave_mode = on<o:p></o:p></i></p>
<p class="MsoNormal"><i>master_slave_sub_mode = 'stream'<o:p></o:p></i></p>
<p class="MsoNormal"><i># - Streaming -<o:p></o:p></i></p>
<p class="MsoNormal"><i>sr_check_period = 30<o:p></o:p></i></p>
<p class="MsoNormal"><i>sr_check_user = 'username'<o:p></o:p></i></p>
<p class="MsoNormal"><i>sr_check_password = 'password'<o:p></o:p></i></p>
<p class="MsoNormal"><i>delay_threshold = 0<o:p></o:p></i></p>
<p class="MsoNormal"><i># - Special commands -<o:p></o:p></i></p>
<p class="MsoNormal"><i>follow_master_command = ''<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i># HEALTH CHECK<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i>health_check_period = 40<o:p></o:p></i></p>
<p class="MsoNormal"><i>health_check_timeout = 10<o:p></o:p></i></p>
<p class="MsoNormal"><i>health_check_user = 'username'<o:p></o:p></i></p>
<p class="MsoNormal"><i>health_check_password = 'password'<o:p></o:p></i></p>
<p class="MsoNormal"><i>health_check_max_retries = 3<o:p></o:p></i></p>
<p class="MsoNormal"><i>health_check_retry_delay = 20<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i># FAILOVER AND FAILBACK<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i>failover_command = '/etc/pgpool-II/failover.sh %d &quot;%h&quot; %p %D %m %M &quot;%H&quot; %P'<o:p></o:p></i></p>
<p class="MsoNormal"><i>failback_command = ''<o:p></o:p></i></p>
<p class="MsoNormal"><i>fail_over_on_backend_error = on<o:p></o:p></i></p>
<p class="MsoNormal"><i>search_primary_node_timeout = 10<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i># ONLINE RECOVERY<o:p></o:p></i></p>
<p class="MsoNormal"><i>#------------------------------------------------------------------------------<o:p></o:p></i></p>
<p class="MsoNormal"><i>recovery_user = ''<o:p></o:p></i></p>
<p class="MsoNormal"><i>recovery_password = ''<o:p></o:p></i></p>
<p class="MsoNormal"><i>recovery_1st_stage_command = 'basebackup.sh'<o:p></o:p></i></p>
<p class="MsoNormal"><i>recovery_2nd_stage_command = ''<o:p></o:p></i></p>
<p class="MsoNormal"><i>recovery_timeout = 90<o:p></o:p></i></p>
<p class="MsoNormal"><i>client_idle_limit_in_recovery = 0<o:p></o:p></i></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Thanks <o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#0068FF">Boaz Goldstein</span></b><span style="font-size:10.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#0068FF"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:7.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#0068FF">DBA, Deployment DBA Team</span></b><span style="font-size:7.5pt;font-family:&quot;Arial&quot;,sans-serif;color:#0068FF"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#0D2A4D"><a href="mailto:boaz.goldstein@sizmek.com"><span style="color:blue">boaz.goldstein@sizmek.com</span></a><o:p></o:p></span></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#0D2A4D">M &#43;972.524.695731</span></b><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#0D2A4D"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#0D2A4D">T &#43;972.9.778.2910</span></b><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#0D2A4D"><o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:8.0pt;font-family:&quot;Arial&quot;,sans-serif;color:#0D2A4D">Israel</span></b><o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>