On Mon, Jun 11, 2007 at 08:13:51PM +0300, Timo Sirainen wrote:
I'll release v1.0.1 in a day or two, but it would be nice to get some testing before the release to see if I managed to break something after the Mercurial conversion. And did I forget something that should be fixed for v1.0.1?
http://dovecot.org/tmp/dovecot-1.0.1rc2.tar.gz
Changes since v1.0.0:
* deliver: If Return-Path doesn't contain user and domain, don't try
to bounce the mail (this is how it was supposed to work earlier too)
* deliver: %variables in mail setting coming from userdb aren't
expanded anymore (again how it should have worked). The expansion
could have caused problems if paths contained any '%' characters.
+ Print Dovecot version number with dovecot -n and -a
- Trying to start Dovecot while it's already running doesn't anymore
wipe out login_dir and break the running Dovecot.
- maildir: Fixed "UID larger than next_uid" errors which happened
sometimes when dovecot-uidlist file didn't exist but index files did
(usually because mailbox didn't have any messages when it was
selected for the first time)
- maildir: We violated maildir spec a bit by not having keyword
characters sorted in the filename.
- maildir: If we don't have write access to cur/ directory, treat the
mailbox as read-only. This fixes some internal error problems with
trying to use read-only maildirs.
I encountered another FS permission related issue with shared mailboxes and acls that causes an Internal error, that I was planning on reporting when I got a chance to sit down and clarify it. It seems to behave better in Thunderbird, because checking for folders to subscribe to just puts in the log "cannot read (path to)/.bedata.In/dovecot-acl" and continues executing. For squirrelmail or telnet, its a simple problem where an IMAP client tries to list folders available for subscription (click Folders in Squirrelmail) but if ANY maildir in configured namespace has insufficient unix permissions to enter, the LIST "" * command aborts with an Internal error:
a LIST "" *
- LIST (\Noselect \HasChildren) "/" "#shared/be" a NO Internal error occurred. Refer to server log for more information. [2007-06-11 17:38:24]
This case was caused from: drwxrwx--- 5 postlocal somegroup 4096 Oct 18 2006 .bedata.In inside one of my shared namespaces "#shared/be" where the current logged in user is not postlocal and is not a member of somegroup.
When I change .bedata.In to 775, it works fine, or when I temporarily disable the acl plugin, it works fine. I believe this problem affects ALL users except if they happen to be a member of "somegroup".
My first workaround was to make .bedata.In mode 775 then restrict the permissions on cur/ tmp/ new/ inside to 770, but this conflicts with permission requirements in other parts of my tree, and for some of my namespaces I really want to prevent world access through unix to the maildirs because of private data, even if my dovecot ACL setup properly restricts the permissions through IMAP.
In short, I don't think dovecot should die when it encounters a failure to enter a directory (to read an ACL file or otherwise), since if the acl cannot be read or the directory is inaccessible anyway, it is of no use to the user and dovecot should log it and continue searching for accessible folders. Hopefully this is an easy case to test, but if I need to participate more, please let me know. Thanks.
- maildir: Deleting a symlinked maildir failed with internal error.
- mbox: pop3_uidl_format=%m wasn't working right
- mbox: If non-filesystem quota was enabled, we could have failed
with "Unexpectedly lost From-line" errors while saving new messages
- mysql auth: %c didn't work. Patch by Andrey Panin
- COPY: We sent "Hang in there.." too early sometimes and checked it
too often (didn't break anything, but was slower than needed).
- deliver: Postfix's sendmail binary wasn't working with mail_debug=yes
- Don't corrupt ssl-parameters.dat files when running multiple Dovecot
instances.
- Cache compression caused dovecot.index.cache to be completely deleted
with big endian CPUs if 64bit file offsets were used (default)
- Fixed "(index_mail_parse_header): assertion failed" crash