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(©_dest_mail);
signature.asc
Description: This is a digitally signed message part