commit 7796bf3
grunfink
·
2025-09-07 06:30:18 +0000 UTC
parent ef701e8
Always do a deferred fsck at startup.
4 files changed,
+20,
-0
+6,
-0
1@@ -3376,6 +3376,12 @@ void process_queue_item(xs_dict *q_item)
2 if (strcmp(type, "rss_hashtag_poll") == 0) {
3 rss_poll_hashtags();
4 }
5+ else
6+ if (strcmp(type, "fsck") == 0) {
7+ srv_log(xs_fmt("started deferred data integrity check"));
8+ data_fsck();
9+ srv_log(xs_fmt("finished deferred data integrity check"));
10+ }
11 else
12 srv_log(xs_fmt("unexpected q_item type '%s'", type));
13 }
M
data.c
+11,
-0
1@@ -3605,6 +3605,17 @@ void enqueue_collect_outbox(snac *user, const char *actor_id)
2 }
3
4
5+void enqueue_fsck(void)
6+/* enqueues an fsck */
7+{
8+ xs *qmsg = _new_qmsg("fsck", "", 0);
9+ const char *ntid = xs_dict_get(qmsg, "ntid");
10+ xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid);
11+
12+ qmsg = _enqueue_put(fn, qmsg);
13+}
14+
15+
16 int was_question_voted(snac *user, const char *id)
17 /* returns true if the user voted in this poll */
18 {
M
httpd.c
+2,
-0
1@@ -805,6 +805,8 @@ static void *background_thread(void *arg)
2
3 srv_log(xs_fmt("background thread started"));
4
5+ enqueue_fsck();
6+
7 while (p_state->srv_running) {
8 int cnt = 0;
9
M
snac.h
+1,
-0
1@@ -299,6 +299,7 @@ void enqueue_webmention(const xs_dict *msg);
2 void enqueue_notify_webhook(snac *user, const xs_dict *noti, int retries);
3 void enqueue_collect_replies(snac *user, const char *post);
4 void enqueue_collect_outbox(snac *user, const char *actor_id);
5+void enqueue_fsck(void);
6
7 int was_question_voted(snac *user, const char *id);
8