diff options
author | Timo <timotej@netdata.cloud> | 2020-01-09 18:51:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-09 18:51:46 +0200 |
commit | 2c0f57151e09b6eda008181912fb891e0a471544 (patch) | |
tree | c846365b5add63daee8a51acd12bfea9ca1a5666 | |
parent | 791e7e713db07d37f7eca844dad8369ac92dc5ee (diff) |
error exit when rrdhost localhost init fails #7504 (#7663)
* error exit when rrdhost localhost init fails #7504
-rw-r--r-- | daemon/main.c | 8 | ||||
-rw-r--r-- | database/rrd.h | 2 | ||||
-rw-r--r-- | database/rrdhost.c | 3 |
3 files changed, 9 insertions, 4 deletions
diff --git a/daemon/main.c b/daemon/main.c index 1dcdb6edd2..9eb424c535 100644 --- a/daemon/main.c +++ b/daemon/main.c @@ -941,7 +941,10 @@ int main(int argc, char **argv) { default_rrd_update_every = 1; default_rrd_memory_mode = RRD_MEMORY_MODE_RAM; default_health_enabled = 0; - rrd_init("unittest", NULL); + if(rrd_init("unittest", NULL)) { + fprintf(stderr, "rrd_init failed for unittest\n"); + return 1; + } default_rrdpush_enabled = 0; if(run_all_mockup_tests()) return 1; if(unit_test_storage()) return 1; @@ -1277,7 +1280,8 @@ int main(int argc, char **argv) { struct rrdhost_system_info *system_info = calloc(1, sizeof(struct rrdhost_system_info)); get_system_info(system_info); - rrd_init(netdata_configured_hostname, system_info); + if(rrd_init(netdata_configured_hostname, system_info)) + fatal("Cannot initialize localhost instance with name '%s'.", netdata_configured_hostname); // ------------------------------------------------------------------------ // Claim netdata agent to a cloud endpoint diff --git a/database/rrd.h b/database/rrd.h index 432341d75d..0702fc1710 100644 --- a/database/rrd.h +++ b/database/rrd.h @@ -800,7 +800,7 @@ extern netdata_rwlock_t rrd_rwlock; extern size_t rrd_hosts_available; extern time_t rrdhost_free_orphan_time; -extern void rrd_init(char *hostname, struct rrdhost_system_info *system_info); +extern int rrd_init(char *hostname, struct rrdhost_system_info *system_info); extern RRDHOST *rrdhost_find_by_hostname(const char *hostname, uint32_t hash); extern RRDHOST *rrdhost_find_by_guid(const char *guid, uint32_t hash); diff --git a/database/rrdhost.c b/database/rrdhost.c index 150596671f..df4e364d9b 100644 --- a/database/rrdhost.c +++ b/database/rrdhost.c @@ -483,7 +483,7 @@ restart_after_removal: // ---------------------------------------------------------------------------- // RRDHOST global / startup initialization -void rrd_init(char *hostname, struct rrdhost_system_info *system_info) { +int rrd_init(char *hostname, struct rrdhost_system_info *system_info) { rrdset_free_obsolete_time = config_get_number(CONFIG_SECTION_GLOBAL, "cleanup obsolete charts after seconds", rrdset_free_obsolete_time); gap_when_lost_iterations_above = (int)config_get_number(CONFIG_SECTION_GLOBAL, "gap when lost iterations above", gap_when_lost_iterations_above); if (gap_when_lost_iterations_above < 1) @@ -517,6 +517,7 @@ void rrd_init(char *hostname, struct rrdhost_system_info *system_info) { ); rrd_unlock(); web_client_api_v1_management_init(); + return localhost==NULL; } // ---------------------------------------------------------------------------- |