From 9caa715eb0cf0444b2627380e44ba340111b9cae Mon Sep 17 00:00:00 2001 From: Ian Barwick Date: Fri, 30 Jun 2017 14:30:41 +0900 Subject: [PATCH] minor fixes --- repmgr.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/repmgr.c b/repmgr.c index 0d36f5fd..53eaee85 100644 --- a/repmgr.c +++ b/repmgr.c @@ -170,7 +170,8 @@ request_vote(PG_FUNCTION_ARGS) // keep lock until end of function? /* this node has initiated voting or already responded to another node */ - if (shared_state->voting_status != VS_NO_VOTE) + if (current_electoral_term == shared_state->current_electoral_term + && shared_state->voting_status != VS_NO_VOTE) { LWLockRelease(shared_state->lock); @@ -178,7 +179,9 @@ request_vote(PG_FUNCTION_ARGS) } - elog(INFO, "requesting node id is %i", requesting_node_id); + elog(INFO, "requesting node id is %i for electoral term %i (our term: %i)", + requesting_node_id, current_electoral_term, + shared_state->current_electoral_term); SPI_connect(); @@ -205,7 +208,7 @@ request_vote(PG_FUNCTION_ARGS) /* indicate this node has responded to a vote request */ shared_state->voting_status = VS_VOTE_REQUEST_RECEIVED; - shared_state->current_electoral_term += 1; + shared_state->current_electoral_term = current_electoral_term; LWLockRelease(shared_state->lock); @@ -240,6 +243,8 @@ set_voting_status_initiated(PG_FUNCTION_ARGS) electoral_term = shared_state->current_electoral_term; LWLockRelease(shared_state->lock); + elog(INFO, "setting voting term to %i", electoral_term); + PG_RETURN_INT32(electoral_term); }