On Sun, 2007-06-17 at 01:23 +0200, Erland Nylend wrote:
> On 2007-06-16, 01:36, Timo Sirainen wrote:
> > OK, attached is the next one. I actually found one missing error handler
> > from there. Doesn't matter if you keep the previous patch or not.
> 
> Here's the first one:
> 
> Jun 17 00:34:50 smtp1 deliver([EMAIL PROTECTED]): copy: mailbox_save_finish() 
> failed

I still can't figure out why that would fail there.. Well, one more
patch that should tell where the error is.

diff -r b2fe5f3e5562 src/lib-storage/index/maildir/maildir-save.c
--- a/src/lib-storage/index/maildir/maildir-save.c	Sat Jun 16 01:38:33 2007 +0300
+++ b/src/lib-storage/index/maildir/maildir-save.c	Sun Jun 17 12:55:30 2007 +0300
@@ -384,6 +384,7 @@ int maildir_save_finish(struct mail_save
 	ctx->finished = TRUE;
 	if (ctx->failed && ctx->fd == -1) {
 		/* tmp file creation failed */
+		i_error("save_finish(): failed=true already");
 		return -1;
 	}
 
@@ -424,6 +425,8 @@ int maildir_save_finish(struct mail_save
 
 	if (ctx->failed) {
 		struct maildir_filename **fm;
+
+		i_error("save_finish(): finishing with failed=true");
 
 		/* delete the tmp file */
 		if (unlink(path) < 0 && errno != ENOENT) {
@@ -455,8 +458,10 @@ int maildir_save_finish(struct mail_save
 	if (dest_mail != NULL) {
 		i_assert(ctx->seq != 0);
 
-		if (mail_set_seq(dest_mail, ctx->seq) < 0)
+		if (mail_set_seq(dest_mail, ctx->seq) < 0) {
+			i_error("save_finish(): mail_set_seq() failed");
 			return -1;
+		}
 	}
 
 	ctx->file_last = NULL;
diff -r b2fe5f3e5562 src/plugins/quota/quota-storage.c
--- a/src/plugins/quota/quota-storage.c	Sat Jun 16 01:38:33 2007 +0300
+++ b/src/plugins/quota/quota-storage.c	Sun Jun 17 12:56:29 2007 +0300
@@ -145,12 +145,16 @@ quota_copy(struct mailbox_transaction_co
                 copy_dest_mail = mail_alloc(t, MAIL_FETCH_PHYSICAL_SIZE, NULL);
 
 	qbox->save_hack = FALSE;
-	if (qbox->super.copy(t, mail, flags, keywords, copy_dest_mail) < 0)
-		return -1;
+	if (qbox->super.copy(t, mail, flags, keywords, copy_dest_mail) < 0) {
+		i_error("quota_copy(): super.copy failed");
+		return -1;
+	}
 
 	/* if copying used saving internally, we already checked the quota
 	   and set qbox->save_hack = TRUE. */
 	ret = qbox->save_hack ? 0 : quota_check(t, copy_dest_mail);
+	if (ret < 0)
+		i_error("quota_check() failed");
 
 	if (copy_dest_mail != dest_mail)
 		mail_free(&copy_dest_mail);

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to