summaryrefslogtreecommitdiffstats
path: root/daemon
diff options
context:
space:
mode:
authorCosta Tsaousis <costa@netdata.cloud>2022-07-08 20:18:07 +0300
committerGitHub <noreply@github.com>2022-07-08 20:18:07 +0300
commit329ef5ebef088cdf691c1dcce4931ded96880e83 (patch)
treebc9852fb05be04e66c8eda77fba552f2eace5989 /daemon
parent2cf65ad3774f697e1c618e2172eee9313c594575 (diff)
fix crash on start on slow disks because ml is initialized before dbengine starts (#13342)
Diffstat (limited to 'daemon')
-rw-r--r--daemon/main.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/daemon/main.c b/daemon/main.c
index a98c0317b1..eec5473808 100644
--- a/daemon/main.c
+++ b/daemon/main.c
@@ -715,6 +715,24 @@ static void get_netdata_configured_variables() {
default_metric_correlations_method = mc_string_to_method(config_get(CONFIG_SECTION_GLOBAL, "metric correlations method", mc_method_to_string(default_metric_correlations_method)));
// --------------------------------------------------------------------
+
+ rrdset_free_obsolete_time = config_get_number(CONFIG_SECTION_DB, "cleanup obsolete charts after secs", rrdset_free_obsolete_time);
+ // Current chart locking and invalidation scheme doesn't prevent Netdata from segmentation faults if a short
+ // cleanup delay is set. Extensive stress tests showed that 10 seconds is quite a safe delay. Look at
+ // https://github.com/netdata/netdata/pull/11222#issuecomment-868367920 for more information.
+ if (rrdset_free_obsolete_time < 10) {
+ rrdset_free_obsolete_time = 10;
+ info("The \"cleanup obsolete charts after seconds\" option was set to 10 seconds.");
+ config_set_number(CONFIG_SECTION_DB, "cleanup obsolete charts after secs", rrdset_free_obsolete_time);
+ }
+
+ gap_when_lost_iterations_above = (int)config_get_number(CONFIG_SECTION_DB, "gap when lost iterations above", gap_when_lost_iterations_above);
+ if (gap_when_lost_iterations_above < 1) {
+ gap_when_lost_iterations_above = 1;
+ config_set_number(CONFIG_SECTION_DB, "gap when lost iterations above", gap_when_lost_iterations_above);
+ }
+
+ // --------------------------------------------------------------------
// get various system parameters
get_system_HZ();