diff options
author | Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> | 2023-08-23 11:00:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-23 11:00:14 +0300 |
commit | 9dec7660e8bb8e7696b6433ec0a49307c8543845 (patch) | |
tree | bc46c9ee747bbd33b8298eb0cc6afed3c2e2f8ab /database | |
parent | 375ab90877540156c0741e367478fa70bd993c3b (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.c | 2 | ||||
-rw-r--r-- | database/sqlite/sqlite_functions.h | 2 |
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; |