Mercurial > dovecot > original-hg > dovecot-2.2
changeset 16792:4a969a2e9399
dsync: Added some more debug logging.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 21 Sep 2013 03:29:09 +0300 |
parents | cc1ee7b50ca9 |
children | 2ce07adab319 |
files | src/doveadm/dsync/dsync-mailbox-import.c |
diffstat | 1 files changed, 47 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/dsync/dsync-mailbox-import.c Sat Sep 21 02:55:27 2013 +0300 +++ b/src/doveadm/dsync/dsync-mailbox-import.c Sat Sep 21 03:29:09 2013 +0300 @@ -3,9 +3,11 @@ #include "lib.h" #include "array.h" #include "hash.h" +#include "str.h" #include "hex-binary.h" #include "istream.h" #include "seq-range-array.h" +#include "imap-util.h" #include "mail-storage-private.h" #include "mail-search-build.h" #include "dsync-transaction-log-scan.h" @@ -112,6 +114,21 @@ bool final); static void +imp_debug(struct dsync_mailbox_importer *importer, const char *fmt, ...) +{ + va_list args; + + if (importer->debug) T_BEGIN { + va_start(args, fmt); + i_debug("brain %c: Import %s: %s", + importer->master_brain ? 'M' : 'S', + mailbox_get_vname(importer->box), + t_strdup_vprintf(fmt, args)); + va_end(args); + } T_END; +} + +static void dsync_mailbox_import_search_init(struct dsync_mailbox_importer *importer) { struct mail_search_args *search_args; @@ -1243,6 +1260,8 @@ unsigned int n, i, count; uint32_t uid; + imp_debug(importer, "Last common UID=%u", importer->last_common_uid); + importer->last_common_uid_found = TRUE; dsync_mailbox_rewind_search(importer); @@ -1395,6 +1414,10 @@ if (importer->failed) return -1; + imp_debug(importer, "Import change GUID=%s UID=%u hdr_hash=%s", + change->guid != NULL ? change->guid : "<unknown>", change->uid, + change->hdr_hash != NULL ? change->hdr_hash : ""); + if (!importer->last_common_uid_found) { dsync_mailbox_find_common_uid(importer, change); if (importer->failed) @@ -1997,6 +2020,9 @@ if (importer->failed) return; + imp_debug(importer, "Import mail body for GUID=%s UID=%u", + mail->guid, mail->uid); + all_newmails = *mail->guid != '\0' ? hash_table_lookup(importer->import_guids, mail->guid) : hash_table_lookup(importer->import_uids, POINTER_CAST(mail->uid)); @@ -2006,6 +2032,9 @@ "GUID=%s UID=%u", mailbox_get_vname(importer->box), mail->guid, mail->uid); + } else { + imp_debug(importer, "Skip unwanted mail body for " + "GUID=%s UID=%u", mail->guid, mail->uid); } return; } @@ -2039,6 +2068,12 @@ if (array_count(unwanted_uids) == 0) return 1; + if (importer->debug) T_BEGIN { + string_t *str = t_str_new(256); + imap_write_seq_range(str, unwanted_uids); + imp_debug(importer, "Reassign UIDs: %s", str_c(str)); + } T_END; + search_args = mail_search_build_init(); arg = mail_search_build_add(search_args, SEARCH_UIDSET); p_array_init(&arg->value.seqset, search_args->pool, @@ -2164,6 +2199,11 @@ ret = -1; } else { /* remember the UIDs that were successfully saved */ + if (importer->debug) T_BEGIN { + string_t *str = t_str_new(256); + imap_write_seq_range(str, &changes.saved_uids); + imp_debug(importer, "Saved UIDs: %s", str_c(str)); + } T_END; seq_range_array_iter_init(&iter, &changes.saved_uids); n = 0; while (seq_range_array_iter_nth(&iter, n++, &uid)) array_append(&importer->saved_uids, &uid, 1); @@ -2202,6 +2242,13 @@ update.min_highest_modseq = importer->remote_highest_modseq; update.min_highest_pvt_modseq = importer->remote_highest_pvt_modseq; + imp_debug(importer, "Finish update: min_next_uid=%u " + "min_first_recent_uid=%u min_highest_modseq=%llu " + "min_highest_pvt_modseq=%llu", + update.min_next_uid, update.min_first_recent_uid, + update.min_highest_modseq, + update.min_highest_pvt_modseq); + if (mailbox_update(importer->box, &update) < 0) { i_error("Mailbox %s: Update failed: %s", mailbox_get_vname(importer->box),