mirror of
https://github.com/EnterpriseDB/repmgr.git
synced 2026-03-26 08:36:30 +00:00
fix: remove own node earlier if force is set
We have to remove our own node before we check for a new master if force is set; else master register would fail on the second time since there already is a master (ourselves), even if we specify -F
This commit is contained in:
31
repmgr.c
31
repmgr.c
@@ -565,6 +565,22 @@ do_master_register(void)
|
|||||||
PGconn *master_conn;
|
PGconn *master_conn;
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
|
if (runtime_options.force)
|
||||||
|
{
|
||||||
|
sqlquery_snprintf(sqlquery, "DELETE FROM %s.repl_nodes "
|
||||||
|
" WHERE id = %d",
|
||||||
|
repmgr_schema, options.node);
|
||||||
|
log_debug(_("master register: %s\n"), sqlquery);
|
||||||
|
|
||||||
|
if (!PQexec(conn, sqlquery))
|
||||||
|
{
|
||||||
|
log_warning(_("Cannot delete node details, %s\n"),
|
||||||
|
PQerrorMessage(conn));
|
||||||
|
PQfinish(conn);
|
||||||
|
exit(ERR_BAD_CONFIG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Ensure there isn't any other master already registered */
|
/* Ensure there isn't any other master already registered */
|
||||||
master_conn = getMasterConnection(conn, repmgr_schema,
|
master_conn = getMasterConnection(conn, repmgr_schema,
|
||||||
options.cluster_name, &id,NULL);
|
options.cluster_name, &id,NULL);
|
||||||
@@ -577,21 +593,6 @@ do_master_register(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Now register the master */
|
/* Now register the master */
|
||||||
if (runtime_options.force)
|
|
||||||
{
|
|
||||||
sqlquery_snprintf(sqlquery, "DELETE FROM %s.repl_nodes "
|
|
||||||
" WHERE id = %d",
|
|
||||||
repmgr_schema, options.node);
|
|
||||||
log_debug(_("master register: %s\n"), sqlquery);
|
|
||||||
|
|
||||||
if (!PQexec(conn, sqlquery))
|
|
||||||
{
|
|
||||||
log_warning(_("Cannot delete node details, %s\n"),
|
|
||||||
PQerrorMessage(conn));
|
|
||||||
PQfinish(conn);
|
|
||||||
exit(ERR_BAD_CONFIG);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlquery_snprintf(sqlquery, "INSERT INTO %s.repl_nodes (id, cluster, name, conninfo, priority) "
|
sqlquery_snprintf(sqlquery, "INSERT INTO %s.repl_nodes (id, cluster, name, conninfo, priority) "
|
||||||
"VALUES (%d, '%s', '%s', '%s', %d)",
|
"VALUES (%d, '%s', '%s', '%s', %d)",
|
||||||
|
|||||||
Reference in New Issue
Block a user