summaryrefslogtreecommitdiffstats
path: root/database
diff options
context:
space:
mode:
authorStelios Fragkakis <52996999+stelfrag@users.noreply.github.com>2023-08-23 11:00:14 +0300
committerGitHub <noreply@github.com>2023-08-23 11:00:14 +0300
commit9dec7660e8bb8e7696b6433ec0a49307c8543845 (patch)
treebc46c9ee747bbd33b8298eb0cc6afed3c2e2f8ab /database
parent375ab90877540156c0741e367478fa70bd993c3b (diff)
Add a fail reason to pinpoint exactly what went wrong (#15866)
* Add a fail reason to pinpoint exactly what went wrong * Drop the env for setting the fail reason. Always pass netdata_fail_reason
Diffstat (limited to 'database')
-rw-r--r--database/sqlite/sqlite_functions.c2
-rw-r--r--database/sqlite/sqlite_functions.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/database/sqlite/sqlite_functions.c b/database/sqlite/sqlite_functions.c
index 27e40db6d4..dc3cd6707c 100644
--- a/database/sqlite/sqlite_functions.c
+++ b/database/sqlite/sqlite_functions.c
@@ -324,6 +324,7 @@ int init_database_batch(sqlite3 *database, int rebuild, int init_type, const cha
if (rc != SQLITE_OK) {
error_report("SQLite error during database %s, rc = %d (%s)", init_type ? "cleanup" : "setup", rc, err_msg);
error_report("SQLite failed statement %s", batch[i]);
+ analytics_set_data_str(&analytics_data.netdata_fail_reason, err_msg);
sqlite3_free(err_msg);
if (SQLITE_CORRUPT == rc) {
if (!rebuild)
@@ -398,6 +399,7 @@ int sql_init_database(db_check_action_type_t rebuild, int memory)
rc = sqlite3_open(sqlite_database, &db_meta);
if (rc != SQLITE_OK) {
error_report("Failed to initialize database at %s, due to \"%s\"", sqlite_database, sqlite3_errstr(rc));
+ analytics_set_data_str(&analytics_data.netdata_fail_reason, sqlite3_errstr(rc));
sqlite3_close(db_meta);
db_meta = NULL;
return 1;
diff --git a/database/sqlite/sqlite_functions.h b/database/sqlite/sqlite_functions.h
index 407ed1eff7..85f14233fc 100644
--- a/database/sqlite/sqlite_functions.h
+++ b/database/sqlite/sqlite_functions.h
@@ -6,6 +6,8 @@
#include "daemon/common.h"
#include "sqlite3.h"
+void analytics_set_data_str(char **name, const char *value);
+
// return a node list
struct node_instance_list {
uuid_t node_id;