2.4 / <not released yet>
- Fixed
+ - Daemon didn't correctly wait when acquiring database lock for data write
+ which could result in unnecessary errors and even process exit if an
+ external database read operation had exactly the same timing as the
+ daemon write operation
- Daemon didn't fork() even when requested to with --daemon when started
by PID 1 (issue seen at least in Docker containers)
- Move vnstatd man page from section 1 to section 8
#define CTX "606060"
#define CTXD "-"
-/* number of retries for non-fatal database errors */
-#define DBRETRYLIMIT 3
+/* number of retries after non-fatal database errors, */
+/* will result in given number + 1 tries in total before exit, */
+/* a full disk (as reported by sqlite) will no cause retries or exit */
+#define DBRETRYLIMIT 5
/* internal config structure */
typedef struct {
printe(PT_Error);
} else {
s->dbretrycount++;
- if (s->dbretrycount >= DBRETRYLIMIT) {
- snprintf(errorstring, 1024, "Database error retry limit %d reached, exiting.", DBRETRYLIMIT);
+ if (s->dbretrycount > DBRETRYLIMIT) {
+ snprintf(errorstring, 1024, "Database error retry limit of %d reached, exiting.", DBRETRYLIMIT);
printe(PT_Error);
errorexitdaemon(s, 1);
}