On Mon, 2007-06-18 at 20:50 +0200, Erland Nylend wrote:
> On 2007-06-18, 18:47, Timo Sirainen wrote:
> > So I guess nothing before this?
> 
> There is one more log line, which I missed:
> 
> Jun 18 19:47:54 smtp2 deliver([EMAIL PROTECTED]): copy: mailbox_save_finish() 
> failed
> Jun 18 19:47:54 smtp2 deliver([EMAIL PROTECTED]): quota_copy(): super.copy 
> failed

Oh, one of my earlier patches was supposed to catch quota_save_finish(),
not quota_copy(). Attached. Also added some more checks.. It has to be
related to quota code.

diff -r 86766f448e50 src/plugins/quota/quota-storage.c
--- a/src/plugins/quota/quota-storage.c	Sun Jun 17 22:08:49 2007 +0300
+++ b/src/plugins/quota/quota-storage.c	Tue Jun 19 03:49:59 2007 +0300
@@ -121,9 +121,12 @@ static int quota_check(struct mailbox_tr
 	if (ret > 0)
 		return 0;
 	else if (ret == 0) {
+		i_error("quota_check(): quota exceeded");
 		mail_storage_set_error(t->box->storage, "Quota exceeded");
 		return -1;
 	} else {
+		i_error("quota_check(): failed: %s",
+			quota_last_error(quota_set));
 		mail_storage_set_error(t->box->storage,  "%s",
 				       quota_last_error(quota_set));
 		return -1;
@@ -215,11 +218,15 @@ static int quota_save_finish(struct mail
 					    MAIL_FETCH_PHYSICAL_SIZE, NULL);
 	}
 
-	if (qbox->super.save_finish(ctx, save_dest_mail) < 0)
-		return -1;
+	if (qbox->super.save_finish(ctx, save_dest_mail) < 0) {
+		i_error("quota.save_finish() failed");
+		return -1;
+	}
 
 	qbox->save_hack = TRUE;
 	ret = quota_check(ctx->transaction, save_dest_mail);
+	if (ret < 0)
+		i_error("quota.save_finish() quota_check() failed");
 
 	if (save_dest_mail != dest_mail)
 		mail_free(&save_dest_mail);

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

Reply via email to