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]