dovecot-2.2: dsync: Added some more debug logging.

dovecot at dovecot.org dovecot at dovecot.org
Sat Sep 21 03:29:23 EEST 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/4a969a2e9399
changeset: 16792:4a969a2e9399
user:      Timo Sirainen <tss at iki.fi>
date:      Sat Sep 21 03:29:09 2013 +0300
description:
dsync: Added some more debug logging.

diffstat:

 src/doveadm/dsync/dsync-mailbox-import.c |  47 ++++++++++++++++++++++++++++++++
 1 files changed, 47 insertions(+), 0 deletions(-)

diffs (116 lines):

diff -r cc1ee7b50ca9 -r 4a969a2e9399 src/doveadm/dsync/dsync-mailbox-import.c
--- 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),


More information about the dovecot-cvs mailing list