]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
global: Handle mail_precache() errors
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 4 Feb 2021 16:07:45 +0000 (18:07 +0200)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 3 Mar 2021 12:35:30 +0000 (12:35 +0000)
src/doveadm/doveadm-mail-index.c
src/indexer/master-connection.c
src/plugins/fts/fts-storage.c

index bdf28b6236b11914514746d693e15a207ae0a7e5..ac0e4c9010b9c0b6f30f992262f71224094995ba 100644 (file)
@@ -76,7 +76,13 @@ static int cmd_index_box_precache(struct doveadm_mail_cmd_context *dctx,
 
        max = status.messages - seq + 1;
        while (mailbox_search_next(ctx, &mail)) {
-               mail_precache(mail);
+               if (mail_precache(mail) < 0) {
+                       i_error("Mailbox %s: Precache for UID=%u failed: %s",
+                               mailbox_get_vname(box), mail->uid,
+                               mailbox_get_last_internal_error(box, NULL));
+                       ret = -1;
+                       break;
+               }
                if (doveadm_verbose && ++counter % 100 == 0) {
                        printf("\r%u/%u", counter, max);
                        fflush(stdout);
index 56da061a4cbb5bd50b40a23828abe20521a190ae..2b41fbd9dc4aca620ecf8835865515017ec45321 100644 (file)
@@ -101,7 +101,13 @@ index_mailbox_precache(struct master_connection *conn, struct mailbox *box)
                        first_uid = mail->uid;
                last_uid = mail->uid;
 
-               mail_precache(mail);
+               if (mail_precache(mail) < 0) {
+                       i_error("Mailbox %s: Precache for UID=%u failed: %s",
+                               mailbox_get_vname(box), mail->uid,
+                               mailbox_get_last_internal_error(box, NULL));
+                       ret = -1;
+                       break;
+               }
                if (++counter % 100 == 0) {
                        percentage = counter*100 / max;
                        if (percentage != percentage_sent && percentage < 100) {
index 5f2a0adeaebe1303953429367927cd1926d886f2..66385aec7904d7677206c6b43f7b9e17732ada60 100644 (file)
@@ -469,7 +469,10 @@ fts_mail_precache_range(struct mailbox_transaction_context *trans,
                        ret = -1;
                        break;
                }
-               mail_precache(mail);
+               if (mail_precache(mail) < 0) {
+                       ret = -1;
+                       break;
+               }
                *extra_count += 1;
        }
        if (mailbox_search_deinit(&ctx) < 0)