Compare commits

...

2 Commits

Author SHA1 Message Date
Mario Gonzalez
e093759ad8 Add primary_node_info inline function
When a t_node_info struct must be re initilised, it was re-declared
only. Moreover, a macro was user for any var creation of this type
impeding use the same to reset the values later if needed.

This new function allows to re initilise again a t_node_info typed
variable without the need to redeclare it to create other varibles for
the same purpose, and also shadowing is now avoided from pg16.

Macros seems to be replaced by `static inline` functions in upstream
postgres, credits to  Alvaro Herrera <alvherre@alvh.no-ip.org> for this
idea.

References: HL-40
2024-11-15 10:52:52 -03:00
Mario Gonzalez
2af2fd1a1c Fix shadowed declaration
Since b5934bfd6071 in postgresql.git the flag
`-Wshadow=compatible-local` is activated. This commit fixes any
duplicated declaration made in the same function.

References: HL-40
2024-11-15 10:52:52 -03:00
5 changed files with 52 additions and 28 deletions

View File

@@ -1624,7 +1624,7 @@ get_ready_archive_files(PGconn *conn, const char *data_directory)
while ((arcdir_ent = readdir(arcdir)) != NULL)
{
struct stat statbuf;
struct stat local_statbuf;
char file_path[MAXPGPATH + sizeof(arcdir_ent->d_name)];
int basenamelen = 0;
@@ -1634,7 +1634,7 @@ get_ready_archive_files(PGconn *conn, const char *data_directory)
arcdir_ent->d_name);
/* skip non-files */
if (stat(file_path, &statbuf) == 0 && !S_ISREG(statbuf.st_mode))
if (stat(file_path, &local_statbuf) == 0 && !S_ISREG(local_statbuf.st_mode))
{
continue;
}

View File

@@ -394,7 +394,6 @@ do_node_status(void)
if (node_info.inactive_replication_slots > 0)
{
KeyValueList inactive_replication_slots = {NULL, NULL};
KeyValueListCell *cell = NULL;
(void) get_inactive_replication_slots(conn, &inactive_replication_slots);
@@ -524,8 +523,6 @@ do_node_status(void)
if (node_info.inactive_replication_slots)
{
KeyValueList inactive_replication_slots = {NULL, NULL};
KeyValueListCell *cell = NULL;
(void) get_inactive_replication_slots(conn, &inactive_replication_slots);
for (cell = inactive_replication_slots.head; cell; cell = cell->next)
{
@@ -2546,6 +2543,7 @@ do_node_rejoin(void)
int server_version_num = UNKNOWN_SERVER_VERSION_NUM;
bool hide_standby_signal = false;
KeyValueListCell *cell = NULL;
PQExpBufferData command;
PQExpBufferData command_output;
PQExpBufferData follow_output;
@@ -2965,7 +2963,7 @@ do_node_rejoin(void)
else
{
while ((slotdir_ent = readdir(slotdir)) != NULL) {
struct stat statbuf;
struct stat local_statbuf;
PQExpBufferData slotdir_ent_path;
if (strcmp(slotdir_ent->d_name, ".") == 0 || strcmp(slotdir_ent->d_name, "..") == 0)
@@ -2978,7 +2976,7 @@ do_node_rejoin(void)
slotdir_path.data,
slotdir_ent->d_name);
if (stat(slotdir_ent_path.data, &statbuf) == 0 && !S_ISDIR(statbuf.st_mode))
if (stat(slotdir_ent_path.data, &local_statbuf) == 0 && !S_ISDIR(local_statbuf.st_mode))
{
termPQExpBuffer(&slotdir_ent_path);
continue;
@@ -3109,7 +3107,6 @@ do_node_rejoin(void)
else
{
KeyValueList inactive_replication_slots = {NULL, NULL};
KeyValueListCell *cell = NULL;
int inactive_count = 0;
PQExpBufferData slotinfo;

View File

@@ -235,6 +235,38 @@ do_primary_register(void)
return;
}
static inline void reset_node_info(t_node_info *info)
{
info->node_id = NODE_NOT_FOUND;
info->upstream_node_id = NO_UPSTREAM_NODE;
info->type = UNKNOWN;
info->node_name[0] = '\0';
info->upstream_node_name[0] = '\0';
info->conninfo[0] = '\0';
info->repluser[0] = '\0';
info->priority = DEFAULT_PRIORITY;
info->active = true;
info->slot_name[0] = '\0';
info->config_file[0] = '\0';
info->last_wal_receive_lsn = InvalidXLogRecPtr;
info->node_status = NODE_STATUS_UNKNOWN;
info->recovery_type = RECTYPE_UNKNOWN;
info->monitoring_state = MS_NORMAL;
info->conn = NULL;
info->details[0] = '\0';
info->reachable = true;
info->attached = true;
/* various statistics */
info->max_wal_senders = -1;
info->attached_wal_receivers = -1;
info->max_replication_slots = -1;
info->total_replication_slots = -1;
info->active_replication_slots = -1;
info->inactive_replication_slots = -1;
info->replication_info = NULL;
strlcpy(info->location, DEFAULT_LOCATION, sizeof(info->location));
}
/*
* do_primary_unregister()
@@ -436,7 +468,7 @@ do_primary_unregister(void)
}
else if (recovery_type == RECTYPE_PRIMARY)
{
t_node_info primary_node_info = T_NODE_INFO_INITIALIZER;
reset_node_info(&primary_node_info);
bool primary_record_found = false;
primary_record_found = get_primary_node_record(primary_conn, &primary_node_info);

View File

@@ -535,7 +535,7 @@ do_standby_clone(void)
if (external_config_files == true)
{
int r;
r = 0;
PQExpBufferData msg;
initPQExpBuffer(&msg);
@@ -762,7 +762,7 @@ do_standby_clone(void)
if (mode == pg_basebackup && runtime_options.verify_backup == true)
{
PQExpBufferData command;
int r;
r = 0;
struct stat st;
initPQExpBuffer(&command);
@@ -3927,7 +3927,6 @@ do_standby_switchover(void)
if (PQserverVersion(local_conn) < 130000 && is_wal_replay_paused(local_conn, false) == true)
{
ReplInfo replication_info;
init_replication_info(&replication_info);
if (get_replication_info(local_conn, STANDBY, &replication_info) == false)
@@ -4784,7 +4783,7 @@ do_standby_switchover(void)
{
NodeInfoListCell *cell = NULL;
ItemList repmgrd_connection_errors = {NULL, NULL};
int i = 0;
i = 0;
int unreachable_node_count = 0;
get_all_node_records(local_conn, &all_nodes);
@@ -5099,8 +5098,6 @@ do_standby_switchover(void)
/* database server could not be contacted */
if (ping_res == PQPING_NO_RESPONSE || ping_res == PQPING_NO_ATTEMPT)
{
bool command_success;
/*
* remote server can't be contacted at protocol level - that
* doesn't necessarily mean it's shut down, so we'll ask its
@@ -5678,7 +5675,7 @@ do_standby_switchover(void)
{
ItemList repmgrd_unpause_errors = {NULL, NULL};
NodeInfoListCell *cell = NULL;
int i = 0;
i = 0;
int error_node_count = 0;
for (cell = all_nodes.head; cell; cell = cell->next)
@@ -6513,12 +6510,12 @@ check_upstream_config(PGconn *conn, int server_version_num, t_node_info *upstrea
if (mode == pg_basebackup)
{
PGconn **connections;
int i;
int available_wal_senders;
int min_replication_connections = 1;
int possible_replication_connections = 0;
t_conninfo_param_list repl_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER;
PGconn **connections;
int available_wal_senders;
int min_replication_connections = 1;
int possible_replication_connections = 0;
i = 0;
t_conninfo_param_list repl_conninfo = T_CONNINFO_PARAM_LIST_INITIALIZER;
/*
@@ -8480,7 +8477,6 @@ check_sibling_nodes(NodeInfoList *sibling_nodes, SiblingNodeStats *sibling_nodes
if (sibling_nodes->node_count > 0)
{
PQExpBufferData nodes;
NodeInfoListCell *cell;
initPQExpBuffer(&nodes);

View File

@@ -1359,6 +1359,8 @@ monitor_streaming_standby(void)
MonitoringState local_monitoring_state = MS_NORMAL;
instr_time local_degraded_monitoring_start;
bool upstream_check_result;
int degraded_monitoring_elapsed;
int last_known_upstream_node_id = UNKNOWN_NODE_ID;
log_debug("monitor_streaming_standby()");
@@ -1547,7 +1549,6 @@ monitor_streaming_standby(void)
while (true)
{
bool upstream_check_result;
log_verbose(LOG_DEBUG, "checking %s", upstream_node_info.conninfo);
@@ -1770,8 +1771,7 @@ monitor_streaming_standby(void)
if (monitoring_state == MS_DEGRADED)
{
int degraded_monitoring_elapsed = calculate_elapsed(degraded_monitoring_start);
bool upstream_check_result;
degraded_monitoring_elapsed = calculate_elapsed(degraded_monitoring_start);
if (config_file_options.degraded_monitoring_timeout > 0
&& degraded_monitoring_elapsed > config_file_options.degraded_monitoring_timeout)
@@ -1894,7 +1894,6 @@ monitor_streaming_standby(void)
*/
if (failover_state == FAILOVER_STATE_PROMOTION_FAILED)
{
int degraded_monitoring_elapsed;
int former_upstream_node_id = local_node_info.upstream_node_id;
NodeInfoList sibling_nodes = T_NODE_INFO_LIST_INITIALIZER;
PQExpBufferData event_details;
@@ -1953,7 +1952,7 @@ monitor_streaming_standby(void)
if (local_node_info.type == PRIMARY)
{
int degraded_monitoring_elapsed = calculate_elapsed(degraded_monitoring_start);
degraded_monitoring_elapsed = calculate_elapsed(degraded_monitoring_start);
log_notice(_("resuming monitoring as primary node after %i seconds"),
degraded_monitoring_elapsed);