[Dovecot] Misbehavior with Dovecot and Mulberry

Jon Roma roma at uiuc.edu
Sun Sep 18 21:28:27 EEST 2005



Timo Sirainen <tss at iki.fi> wrote:

> On Mon, 2005-09-05 at 23:57 -0500, Jon Roma wrote:
>>     --> #6.3408 Mon Sep  5 23:25:13 2005
>>     A00092 APPEND Sent (\Seen) {610+}
>>     A00092 NO
>
> That happens if some function returned -1 but didn't set any error.
> Shouldn't happen..
>
>> I am running 1.0-test80 with Timo's patch to fix the "time off by
>> 200 minutes" error with mbox.  All my folders are maildir at this
>> point -- I've converted them out of my UW mbx format store.  My
>> client is Mulberry 3.1.6 for Windows and the OS is AIX 5.1.
>
> So, they are maildirs? Do these changes help:
>
> Index: src/imap/cmd-append.c
> ===================================================================
> RCS file: /var/lib/cvs/dovecot/src/imap/cmd-append.c,v
> retrieving revision 1.64
> retrieving revision 1.65
> diff -u -r1.64 -r1.65
> --- src/imap/cmd-append.c	28 Jun 2005 11:15:57 -0000	1.64
> +++ src/imap/cmd-append.c	18 Sep 2005 16:58:01 -0000	1.65
> @@ -292,8 +292,7 @@
>  	int failed;
>
>  	if (ctx->save_ctx != NULL) {
> -		if (mailbox_save_continue(ctx->save_ctx) < 0 ||
> -		    client->input->closed) {
> +		if (mailbox_save_continue(ctx->save_ctx) < 0) {
>  			/* we still have to finish reading the message
>  			   from client */
>  			mailbox_save_cancel(ctx->save_ctx);
> Index: src/lib-storage/index/maildir/maildir-save.c
> ===================================================================
> RCS file:
> /var/lib/cvs/dovecot/src/lib-storage/index/maildir/maildir-save.c,v
> retrieving revision 1.57
> retrieving revision 1.58
> diff -u -r1.57 -r1.58
> --- src/lib-storage/index/maildir/maildir-save.c	14 Aug 2005 19:02:54
> -0000	1.57 +++ src/lib-storage/index/maildir/maildir-save.c	18 Sep 2005
> 16:58:31 -0000	1.58 @@ -217,6 +217,10 @@
>  		return -1;
>
>  	if (o_stream_send_istream(ctx->output, ctx->input) < 0) {
> +		mail_storage_set_critical(STORAGE(ctx->mbox->storage),
> +			"o_stream_send_istream(%s) failed: %m",
> +			t_strconcat(ctx->tmpdir, "/",
> +				    ctx->files->basename, NULL));
>  		ctx->failed = TRUE;
>  		return -1;
>  	}
>

Timo:

Yes, my mailboxes are maildirs.

Your patch seems to have fixed the problem -- I can now append outgoing
mail to a Dovecot maildir 'Sent' mailbox as it gets sent.  And I can now
also save a draft in my Dovecot maildir 'Drafts' mailbox when desired.

What this means is that I no longer need UW (Yay!) -- I was saving my
outgoing mail and drafts in a skeletal UW tree pending resolution of
this problem.

There is still an anomaly when using the Mulberry client to move mail
from the UW tree to Dovecot (which I now want to do in preparation for
getting rid of UW imapd.

Using Mulberry to move mail from UW to Dovecot only works with some
messages and not others.  Maybe this is not important -- I can slurp
my last two UW mboxes into a Dovecot namespace and then move them as
desired into the default namespace.

But perhaps this behavior is something you are interested in -- here's
the transcript on the client side.

First a copy/move that succeeded.  I am in the source folder (under UW)
and have chosen a message that I want to move to the Dovecot 'Sent'
folder is the destination.

	--> #25.2768 Sun Sep 18 13:10:26 2005
	A00145 FETCH 170 (BODY[1])
	* 170 FETCH (BODY[1] {280}
	)
	A00145 OK FETCH completed

	--> #1.2768 Sun Sep 18 13:10:34 2005
	A00010 APPEND Sent (\Seen) "15-Sep-2005 18:00:43 -0500" {813+}
	--> #25.2768 Sun Sep 18 13:10:34 2005
	A00146 FETCH 170 (BODY.PEEK[])
	* 170 FETCH (BODY[] {813}
	)
	A00146 OK FETCH completed

	A00010 OK Append completed.

	--> #1.2768 Sun Sep 18 13:10:35 2005
	A00011 STATUS Sent (MESSAGES RECENT UNSEEN UIDVALIDITY UIDNEXT)
	* STATUS "Sent" (MESSAGES 5547 RECENT 1 UIDNEXT 5552 UIDVALIDITY 
1125869336 UNSEEN 0)
	A00011 OK Status completed.

	--> #25.2768 Sun Sep 18 13:10:35 2005
	A00147 STORE 170 +FLAGS (\Deleted)
	* 170 FETCH (FLAGS (\Seen \Deleted))
	A00147 OK STORE completed

This move succeeded.

Now I choose a different message in Mulberry and try to do the same
move operation.  This one fails.

	--> #25.2768 Sun Sep 18 13:10:35 2005
	A00148 FETCH 171 (BODY[1])
	* 171 FETCH (BODY[1] {268}
	)
	A00148 OK FETCH completed

	--> #1.2768 Sun Sep 18 13:10:44 2005
	A00012 APPEND Sent (\Seen) "15-Sep-2005 19:52:14 -0500" {832+}
	--> #25.2768 Sun Sep 18 13:10:44 2005
	A00149 FETCH 171 (BODY.PEEK[])
	* 171 FETCH (BODY[] {832}
	)
	A00149 OK FETCH completed

	A00012 NO Internal error occurred. Refer to server log for more 
information. [2005-09-18 13:10:44]

The corresponding syslog message is

	Sep 18 13:10:44 zippy dovecot: IMAP(roma): o_stream_send_istrea 
(/var/imap/dovecot/roma/.Sent/tmp/1127067044.P44216Q3.zippy.cso.uiuc.edu) 
failed: Invalid argument

Maybe this isn't important, but I send it in case you think it's something
you want to look at.

I'll leave the relevant mailbox around so I can try this again if
necessary.

Thanks for the patch!


More information about the dovecot mailing list