From: Timo Sirainen Date: Thu, 4 Feb 2021 16:07:45 +0000 (+0200) Subject: global: Handle mail_precache() errors X-Git-Tag: 2.3.15~337 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f328ac9f535d696576855f721af502e3600a53b;p=thirdparty%2Fdovecot%2Fcore.git global: Handle mail_precache() errors --- diff --git a/src/doveadm/doveadm-mail-index.c b/src/doveadm/doveadm-mail-index.c index bdf28b6236..ac0e4c9010 100644 --- a/src/doveadm/doveadm-mail-index.c +++ b/src/doveadm/doveadm-mail-index.c @@ -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); diff --git a/src/indexer/master-connection.c b/src/indexer/master-connection.c index 56da061a4c..2b41fbd9dc 100644 --- a/src/indexer/master-connection.c +++ b/src/indexer/master-connection.c @@ -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) { diff --git a/src/plugins/fts/fts-storage.c b/src/plugins/fts/fts-storage.c index 5f2a0adeae..66385aec79 100644 --- a/src/plugins/fts/fts-storage.c +++ b/src/plugins/fts/fts-storage.c @@ -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)