@cryptotaxi247 / netdata-1 / commits / fcd51e075

Add a default busy timeout (#20201)

* Switch message to warning Add busy timeout handler * Add message

Stelios Fragkakis committed Apr 28, 2025 at 21:15 UTC fcd51e075d08276e7544b80dac8d19430df9bbff
3 files changed +4 -1
src/database/sqlite/sqlite_functions.c
+1 -1
@@ -272,7 +272,7 @@ int db_execute(sqlite3 *db, const char *cmd)
272 break;
273
274 ++cnt;
275 - error_report("Failed to execute '%s', rc = %d (%s) -- attempt %d", cmd, rc, err_msg ? err_msg : "unknown", cnt);
275 + nd_log_daemon(NDLP_WARNING, "Failed to execute '%s', rc = %d (%s) -- attempt %d", cmd, rc, err_msg ? err_msg : "unknown", cnt);
276 if (err_msg) {
277 sqlite3_free(err_msg);
278 }
src/database/sqlite/sqlite_functions.h
+1
@@ -83,6 +83,7 @@ void analytics_set_data_str(char **name, const char *value);
83
84 #define SQL_MAX_RETRY (100)
85 #define SQLITE_INSERT_DELAY (10) // Insert delay in case of lock
86 +#define SQLITE_BUSY_DELAY_MS (30) // Busy timeout delay
87
88 SQLITE_API int sqlite3_step_monitored(sqlite3_stmt *stmt);
89 SQLITE_API int sqlite3_exec_monitored(
src/database/sqlite/sqlite_metadata.c
+2
@@ -797,6 +797,8 @@ int sql_init_meta_database(db_check_action_type_t rebuild, int memory)
797 goto close_database;
798
799 netdata_log_info("SQLite database initialization completed");
800 + if (sqlite3_busy_timeout(db_meta, SQLITE_BUSY_DELAY_MS) != SQLITE_OK)
801 + nd_log_daemon(NDLP_WARNING, "SQLITE: Failed to set busy timeout to %d ms", SQLITE_BUSY_DELAY_MS);
802
803 return 0;
804