diff options
| author | grunfink <grunfink@comam.es> | 2025-09-07 08:30:18 +0200 |
|---|---|---|
| committer | grunfink <grunfink@comam.es> | 2025-09-07 08:30:18 +0200 |
| commit | 7796bf39f0f1fe5bea4cde5a426bee872602ca84 (patch) | |
| tree | fa3377bb3b5fd6e789c711d46b657c2ebe68753b | |
| parent | ef701e8bb4c404343bf25cc713e660c423516345 (diff) | |
Always do a deferred fsck at startup.
| -rw-r--r-- | activitypub.c | 6 | ||||
| -rw-r--r-- | data.c | 11 | ||||
| -rw-r--r-- | httpd.c | 2 | ||||
| -rw-r--r-- | snac.h | 1 |
4 files changed, 20 insertions, 0 deletions
diff --git a/activitypub.c b/activitypub.c index d699fee..5fb60ba 100644 --- a/activitypub.c +++ b/activitypub.c @@ -3377,6 +3377,12 @@ void process_queue_item(xs_dict *q_item) rss_poll_hashtags(); } else + if (strcmp(type, "fsck") == 0) { + srv_log(xs_fmt("started deferred data integrity check")); + data_fsck(); + srv_log(xs_fmt("finished deferred data integrity check")); + } + else srv_log(xs_fmt("unexpected q_item type '%s'", type)); } @@ -3605,6 +3605,17 @@ void enqueue_collect_outbox(snac *user, const char *actor_id) } +void enqueue_fsck(void) +/* enqueues an fsck */ +{ + xs *qmsg = _new_qmsg("fsck", "", 0); + const char *ntid = xs_dict_get(qmsg, "ntid"); + xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid); + + qmsg = _enqueue_put(fn, qmsg); +} + + int was_question_voted(snac *user, const char *id) /* returns true if the user voted in this poll */ { @@ -805,6 +805,8 @@ static void *background_thread(void *arg) srv_log(xs_fmt("background thread started")); + enqueue_fsck(); + while (p_state->srv_running) { int cnt = 0; @@ -299,6 +299,7 @@ void enqueue_webmention(const xs_dict *msg); void enqueue_notify_webhook(snac *user, const xs_dict *noti, int retries); void enqueue_collect_replies(snac *user, const char *post); void enqueue_collect_outbox(snac *user, const char *actor_id); +void enqueue_fsck(void); int was_question_voted(snac *user, const char *id); |