[Dovecot] infinite loop deleting ~160'000 mails (was Re: Unexpected behaviour when deleteing a big mailbox)
Timo Sirainen
tss at iki.fi
Fri Mar 30 17:00:41 EEST 2007
On Fri, 2007-03-30 at 15:39 +0200, Steffen Kaiser wrote:
> dovecot: Mar 30 08:49:27 Error: IMAP(dvtest2) [12578]: Transaction log
> file /var/cache/dovecot/31022/index/.box1/dovecot.index.log: marked
> corrupted
> dovecot: Mar 30 08:49:28 Error: IMAP(dvtest2) [12581]: Corrupted
> transaction log file
> /var/cache/dovecot/31022/index/.box1/dovecot.index.log: Append with UID
> 168554, but next_uid = 168555
> dovecot: Mar 30 08:49:28 Error: IMAP(dvtest2) [12488]: Transaction log
> file /var/cache/dovecot/31022/index/.box1/dovecot.index.log: marked
> corrupted
These and the duplicate link errors are because of
maildir_copy_preserve_filename=yes. With =no it shouldn't log any
errors.
> box1 (the copybox) contains 168778 messages.
> When I first selected the box1, there were some
> "Fixed a duplicate link" Warnings, then Thunderbird tried to download all
> the message headers. It never returned to something useful state.
> straceing the imap process I saw that Dovecot reads all messages fully,
> header & body, then sends the client:
>
> * 49136 FETCH (UID 49235 RFC822.SIZE 7426 FLAGS (\Recent)
> BODY[HEADER.FIELDS (FROM TO CC SUBJECT DATE MESSAGE-ID PRIORITY X-PRIORITY
> REFERENCES NEWSGROUPS IN-REPLY-TO CONTENT-TYPE)] {668}
> And the headers.
For all the messages I guess? So was there a Dovecot bug related to
this, or was it just that Thunderbird doesn't like that many messages?
> When I tried to delete all the messages through the "Trashbox", the
> copy-to-Trash process fails with (see end of mail).
> Then the process starts again with uid=1, again the same error is issued
> at the same uid.
> After the first "Out-of-mem" condition, I see "delete uid 1" in the log,
> but the messages are still there and the COPY is still performed again.
Hmm. So copying 180k messages eats 250MB of memory? That sounds a bit
much, but I guess it's possible.. Maildir code takes around 80-100
bytes/message, index file code takes 8 bytes/message + more for
keywords. But even assuming about the worst case scenarios, it shouldn't
take more than 30MB. Wonder where the rest is going.
> Dunno, I simply suggest that the admin may limit the number
> of items a COPY command may be performed for. I mean, one can
> move/copy/delete-to-trash mails in chunks of 50'000 messages - nobody
> sane has that many message in one mailbox, hasn't one?
Right, so this practically never happens with real users. I don't want
to add any more settings that are mostly useless.
You can anyway make it work by growing mail_process_size.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20070330/415056cb/attachment-0001.pgp
More information about the dovecot
mailing list