pgpool2.git / summary / log / commit / refs
commit ef29fe2ee2418036a9ca273e8f4d68b690617255
Author: Yoshiyuki Asaba <y-asaba at pgfoundry.org>
Date: Thu Feb 14 05:09:56 2008 +0000
Fix a failover bug that pgpool did not determine a next master node in
raw_mode.
main.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/main.c b/main.c
index 6c522da08..786cf4b98 100644
--- a/main.c
+++ b/main.c
@@ -1045,7 +1045,12 @@ static int get_next_master_node(void)
int i;
for (i=0;i<pool_config->backend_desc->num_backends;i++)
{
- if (VALID_BACKEND(i))
+ if (RAW_MODE)
+ {
+ if (BACKEND_INFO(i).backend_status == CON_CONNECT_WAIT)
+ break;
+ }
+ else if (VALID_BACKEND(i))
break;
}
return i;
@@ -1646,8 +1651,7 @@ static void pool_sleep(unsigned int second)
sleep_time.tv_usec = current_time.tv_usec;
POOL_SETMASK(&UnBlockSig);
- while (sleep_time.tv_sec > current_time.tv_sec ||
- sleep_time.tv_usec > current_time.tv_usec)
+ while (sleep_time.tv_sec > current_time.tv_sec)
{
struct timeval timeout;
int r;
[parent: 02d1f0110e3c]