result = establish_persistent_connection(*node_id);
-#ifdef HEALTHCHECK_DEBUG
- if (check_backend_down_request(*node_id, false) || (result && slot == NULL))
-#else
if (result && slot == NULL)
-#endif
{
if (POOL_DISALLOW_TO_FAILOVER(BACKEND_INFO(*node_id).flag))
{
}
}
}
- else if (bkinfo->backend_status == CON_DOWN && bkinfo->quarantine == true)
+ else if (slot && bkinfo->backend_status == CON_DOWN && bkinfo->quarantine == true)
{
/* The node has become reachable again. Reset
* the quarantine state
*/
-#ifdef HEALTHCHECK_DEBUG
- if (check_backend_down_request(*node_id, true) == false)
-#endif
- send_failback_request(*node_id, false, REQ_DETAIL_UPDATE | REQ_DETAIL_WATCHDOG);
+ send_failback_request(*node_id, false, REQ_DETAIL_UPDATE | REQ_DETAIL_WATCHDOG);
}
/* Discard persistent connections */
CLEAR_ALARM;
}
+#ifdef HEALTHCHECK_DEBUG
+ if (slot && check_backend_down_request(node, false) == true)
+ {
+ discard_persistent_connection(node);
+ }
+#endif
+
if (slot)
{
if (retry_cnt != pool_config->health_check_params[node].health_check_max_retries)
if (password)
pfree(password);
+
if (check_failback && !Req_info->switching && slot)
{
ereport(LOG,
if (!found)
return false;
+#ifdef NOT_USED
fd = fopen(backend_down_request_file, "w");
if (!fd)
{
return false;
}
fclose(fd);
+#endif
return true;
}