mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-26 16:46:28 +00:00
Check node recovery type before attempting to write an event record
In some corner cases (e.g. immediately after a switchover) where the current primary has not yet been determined, the provided connection might not be writeable. This prevents error messages such as "cannot execute INSERT in a read-only transaction" generating unnecessary noise in the logs.
This commit is contained in:
@@ -3545,9 +3545,10 @@ _create_event(PGconn *conn, t_configuration_options *options, int node_id, char
|
|||||||
log_verbose(LOG_DEBUG, "_create_event(): event is \"%s\" for node %i", event, node_id);
|
log_verbose(LOG_DEBUG, "_create_event(): event is \"%s\" for node %i", event, node_id);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Only attempt to write a record if a connection handle was provided.
|
* Only attempt to write a record if a connection handle was provided,
|
||||||
|
* and the connection handle points to a node which is not in recovery.
|
||||||
*/
|
*/
|
||||||
if (conn != NULL && PQstatus(conn) == CONNECTION_OK)
|
if (conn != NULL && PQstatus(conn) == CONNECTION_OK && get_recovery_type(conn) == RECTYPE_PRIMARY)
|
||||||
{
|
{
|
||||||
int n_node_id = htonl(node_id);
|
int n_node_id = htonl(node_id);
|
||||||
char *t_successful = successful ? "TRUE" : "FALSE";
|
char *t_successful = successful ? "TRUE" : "FALSE";
|
||||||
|
|||||||
Reference in New Issue
Block a user