summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Vasilakis <mrzammler@mm.st>2023-03-07 16:04:56 +0200
committerGitHub <noreply@github.com>2023-03-07 16:04:56 +0200
commita5efb978e1b89ff4495fc06a748d2ab69be1d73b (patch)
tree85152ea9309a5361b1ce229489bb0141d225009e
parent646d43d9c0d50b83273f580c314686c20a7e8127 (diff)
Guard for null host when sending node instances (#14673)
* guard for null host when sending node instances * also add a default value when migrating
-rw-r--r--aclk/aclk.c5
-rw-r--r--database/sqlite/sqlite_db_migration.c2
-rw-r--r--database/sqlite/sqlite_functions.c2
3 files changed, 7 insertions, 2 deletions
diff --git a/aclk/aclk.c b/aclk/aclk.c
index e808972213..9e03e04c8c 100644
--- a/aclk/aclk.c
+++ b/aclk/aclk.c
@@ -870,6 +870,11 @@ void aclk_send_node_instances()
uuid_unparse_lower(list->host_id, host_id);
RRDHOST *host = rrdhost_find_by_guid(host_id);
+ if (unlikely(!host)) {
+ freez((void*)node_state_update.node_id);
+ freez(query);
+ continue;
+ }
node_state_update.capabilities = aclk_get_node_instance_capas(host);
rrdhost_aclk_state_lock(localhost);
diff --git a/database/sqlite/sqlite_db_migration.c b/database/sqlite/sqlite_db_migration.c
index fad3c57643..3132ae2d05 100644
--- a/database/sqlite/sqlite_db_migration.c
+++ b/database/sqlite/sqlite_db_migration.c
@@ -49,7 +49,7 @@ static int column_exists_in_table(const char *table, const char *column)
}
const char *database_migrate_v1_v2[] = {
- "ALTER TABLE host ADD hops INTEGER;",
+ "ALTER TABLE host ADD hops INTEGER NOT NULL DEFAULT 0;",
NULL
};
diff --git a/database/sqlite/sqlite_functions.c b/database/sqlite/sqlite_functions.c
index 3bd11f1ae1..bdfcd7f6ed 100644
--- a/database/sqlite/sqlite_functions.c
+++ b/database/sqlite/sqlite_functions.c
@@ -771,7 +771,7 @@ failed:
}
#define SQL_GET_NODE_INSTANCE_LIST "select ni.node_id, ni.host_id, h.hostname " \
- "from node_instance ni, host h where ni.host_id = h.host_id;"
+ "from node_instance ni, host h where ni.host_id = h.host_id AND h.hops >=0;"
struct node_instance_list *get_node_list(void)
{