mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-22 22:56:29 +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);
|
||||
|
||||
/*
|
||||
* 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);
|
||||
char *t_successful = successful ? "TRUE" : "FALSE";
|
||||
|
||||
Reference in New Issue
Block a user