[Dovecot] v2.0.rc5 released
http://dovecot.org/releases/2.0/rc/dovecot-2.0.rc5.tar.gz http://dovecot.org/releases/2.0/rc/dovecot-2.0.rc5.tar.gz.sig
Unfortunately v2.0.0 has to be delayed a while longer, because I found that there were still problems in plugin hook handling when using more than 2 plugins. Hopefully it's now finally fully fixed, but I'd like to be sure and wait for one more week to see if people can find a problem with some plugin combination.
- Using more than 2 plugins could have caused broken behavior
(more fixes for this)
- Listescape plugin fixes
- mbox: Fixed a couple of assert-crashes
- mdbox: Fixed potential assert-crash when saving multiple messages
in one transaction.
chmod -R 775 /var/run/dovecot dovecot & Warning: Corrected permissions for login directory /var/run/dovecot/login ls -l /var/run/dovecot srw-rw-rw- 1 root root 0 Aug 10 15:02 auth-master srw------- 1 mail mail 0 Aug 10 15:02 auth-worker.2774 srwxrwxrwx 1 root root 0 Aug 10 15:02 dict-server lrwxrwxrwx 1 root root 17 Aug 10 15:02 dovecot.conf -> /etc/dovecot.conf drwxr-x--- 2 root dovecot 4096 Aug 10 15:02 login -rw------- 1 root root 5 Aug 10 15:02 master.pid
Everything works, eventually. All mail will sooner or later get delivered, using dovecot LDA from postfix, but these errors rampage the log several times. I recently added managesieve, expires, and finished the quota which I thought was achived by simply having quota_rule as a result of mysql.
Aug 10 15:07:57 server1 dovecot: IMAP(someone@sheltoncomputers.com): read(/var/run/dovecot/dict-server) failed: Timeout after 30 seconds Aug 10 15:07:57 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered Aug 10 15:08:09 server1 last message repeated 4428 times
On another note, Thunderbird is starting to get on my nerves, sending this message before I was finished.
Here is the relevant config:
dovecot-mysql query:
user_query = SELECT CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/') AS home, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/', mailboxes.username, '.sieve') as sieve, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/') as sieve_dir, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/mail/') AS maildir, uid AS uid, gid AS gid, CONCAT('maildir:storage=', ROUND(mailboxes.quota/1200), 'M') AS quota_rule, 'Trash:ignore' AS quota_rule2 FROM mail.mailboxes WHERE username = '%n' AND domain = '%d' AND active = '1'
dovecot.conf: protocol managesieve { listen = localhost:2001 managesieve_implementation_string = dovecot managesieve_logout_format = bytes ( in=%i : out=%o ) mail_executable = /usr/libexec/dovecot/managesieve login_executable = /usr/libexec/dovecot/managesieve-login }
auth_debug = no auth default {
mechanisms = plain login
passdb sql { args = /etc/dovecot/dovecot-mysql.conf # scheme = cram-md5 } userdb sql { args = /etc/dovecot/dovecot-mysql.conf } user = mail socket listen { client { path = /var/spool/postfix/private/auth user = postfix group = postfix mode = 0660 } master { path = /var/run/dovecot/auth-master mode = 0666 } } } dict { # # NOTE: dict process currently runs as root, so this file will be owned as root. expire = mysql:/etc/dovecot/dict-expire.conf quotadict = mysql:/etc/dovecot/dict-quota.conf }
plugin { quota = dict:user::proxy::quotadict
expire = Trash 7 Trash/* 7 Spam 30 expire_dict = proxy::expire expire_altmove = * 2555
sieve_global_path = /home/mail/sieve/global.sieve sieve_global_dir = /home/mail/sieve sieve_dir=/home/mail/%d/%n/sieve
}
As said, everything works, eventually, but mail delivery is delayed a lot.
Thanks,
Jerrale G
On 10.8.2010, at 20.16, Jerrale G wrote:
Aug 10 15:07:57 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered Aug 10 15:08:09 server1 last message repeated 4428 times
This is broken.. How did you install Dovecot? What version? Do you have any dict plugins (probably in /usr/lib/dovecot/dict/)? It looks as if mysql plugin is loaded twice.
On 8/10/2010 3:16 PM, Jerrale G wrote:
chmod -R 775 /var/run/dovecot dovecot & Warning: Corrected permissions for login directory /var/run/dovecot/login ls -l /var/run/dovecot srw-rw-rw- 1 root root 0 Aug 10 15:02 auth-master srw------- 1 mail mail 0 Aug 10 15:02 auth-worker.2774 srwxrwxrwx 1 root root 0 Aug 10 15:02 dict-server lrwxrwxrwx 1 root root 17 Aug 10 15:02 dovecot.conf -> /etc/dovecot.conf drwxr-x--- 2 root dovecot 4096 Aug 10 15:02 login -rw------- 1 root root 5 Aug 10 15:02 master.pid
Everything works, eventually. All mail will sooner or later get delivered, using dovecot LDA from postfix, but these errors rampage the log several times. I recently added managesieve, expires, and finished the quota which I thought was achived by simply having quota_rule as a result of mysql.
Aug 10 15:07:57 server1 dovecot: IMAP(someone@sheltoncomputers.com): read(/var/run/dovecot/dict-server) failed: Timeout after 30 seconds Aug 10 15:07:57 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered Aug 10 15:08:09 server1 last message repeated 4428 times
On another note, Thunderbird is starting to get on my nerves, sending this message before I was finished.
Here is the relevant config:
dovecot-mysql query:
user_query = SELECT CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/') AS home, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/', mailboxes.username, '.sieve') as sieve, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/') as sieve_dir, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/mail/') AS maildir, uid AS uid, gid AS gid, CONCAT('maildir:storage=', ROUND(mailboxes.quota/1200), 'M') AS quota_rule, 'Trash:ignore' AS quota_rule2 FROM mail.mailboxes WHERE username = '%n' AND domain = '%d' AND active = '1'
dovecot.conf: protocol managesieve { listen = localhost:2001 managesieve_implementation_string = dovecot managesieve_logout_format = bytes ( in=%i : out=%o ) mail_executable = /usr/libexec/dovecot/managesieve login_executable = /usr/libexec/dovecot/managesieve-login }
auth_debug = no auth default {
mechanisms = plain login
passdb sql { args = /etc/dovecot/dovecot-mysql.conf # scheme = cram-md5 } userdb sql { args = /etc/dovecot/dovecot-mysql.conf } user = mail socket listen { client { path = /var/spool/postfix/private/auth user = postfix group = postfix mode = 0660 } master { path = /var/run/dovecot/auth-master mode = 0666 } } } dict { # # NOTE: dict process currently runs as root, so this file will be owned as root. expire = mysql:/etc/dovecot/dict-expire.conf quotadict = mysql:/etc/dovecot/dict-quota.conf }
plugin { quota = dict:user::proxy::quotadict
expire = Trash 7 Trash/* 7 Spam 30 expire_dict = proxy::expire expire_altmove = * 2555
sieve_global_path = /home/mail/sieve/global.sieve sieve_global_dir = /home/mail/sieve sieve_dir=/home/mail/%d/%n/sieve
}
As said, everything works, eventually, but mail delivery is delayed a lot.
Thanks,
Jerrale G Removing the expires plugin, due to removing its dict, causes everything to work normally. for some reason, dovecot 1.2.13 with managesieve 0.11.11 doesn't like using any dictionaries such as:
#dict { # NOTE: dict process currently runs as root, so this file will be owned as root. #expire = mysql:/etc/dovecot/dict-expire.conf #quotadict = mysql:/etc/dovecot/dict-quota.conf #}
Since I use maildir, I don't need a quota dict, which means I can just work around this problem. I don't HAVE to use expires as I have put a cronjob to go around the spam and trash boxes, deleting messages over 60 days old, for spam, and 15 days for trash.
Please, someone, explain why the dictionaries do not want to work. I used the sql config for both from the dovecot.org, those configs relating to dovecot 1.2. I thought there may be a workaround of not using the proxy::, as the mysql is on the same machine as dovecot and multiple connections would not be a problem.
Jerrale G.
Shelton Computers
On 8/10/2010 3:16 PM, Jerrale G wrote:
chmod -R 775 /var/run/dovecot dovecot & Warning: Corrected permissions for login directory /var/run/dovecot/login ls -l /var/run/dovecot srw-rw-rw- 1 root root 0 Aug 10 15:02 auth-master srw------- 1 mail mail 0 Aug 10 15:02 auth-worker.2774 srwxrwxrwx 1 root root 0 Aug 10 15:02 dict-server lrwxrwxrwx 1 root root 17 Aug 10 15:02 dovecot.conf -> /etc/dovecot.conf drwxr-x--- 2 root dovecot 4096 Aug 10 15:02 login -rw------- 1 root root 5 Aug 10 15:02 master.pid
Everything works, eventually. All mail will sooner or later get delivered, using dovecot LDA from postfix, but these errors rampage the log several times. I recently added managesieve, expires, and finished the quota which I thought was achived by simply having quota_rule as a result of mysql.
Aug 10 15:07:57 server1 dovecot: IMAP(someone@sheltoncomputers.com): read(/var/run/dovecot/dict-server) failed: Timeout after 30 seconds Aug 10 15:07:57 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered Aug 10 15:08:09 server1 last message repeated 4428 times
On another note, Thunderbird is starting to get on my nerves, sending this message before I was finished.
Here is the relevant config:
dovecot-mysql query:
user_query = SELECT CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/') AS home, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/', mailboxes.username, '.sieve') as sieve, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/') as sieve_dir, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/mail/') AS maildir, uid AS uid, gid AS gid, CONCAT('maildir:storage=', ROUND(mailboxes.quota/1200), 'M') AS quota_rule, 'Trash:ignore' AS quota_rule2 FROM mail.mailboxes WHERE username = '%n' AND domain = '%d' AND active = '1'
dovecot.conf: protocol managesieve { listen = localhost:2001 managesieve_implementation_string = dovecot managesieve_logout_format = bytes ( in=%i : out=%o ) mail_executable = /usr/libexec/dovecot/managesieve login_executable = /usr/libexec/dovecot/managesieve-login }
auth_debug = no auth default {
mechanisms = plain login
passdb sql { args = /etc/dovecot/dovecot-mysql.conf # scheme = cram-md5 } userdb sql { args = /etc/dovecot/dovecot-mysql.conf } user = mail socket listen { client { path = /var/spool/postfix/private/auth user = postfix group = postfix mode = 0660 } master { path = /var/run/dovecot/auth-master mode = 0666 } } } dict { # # NOTE: dict process currently runs as root, so this file will be owned as root. expire = mysql:/etc/dovecot/dict-expire.conf quotadict = mysql:/etc/dovecot/dict-quota.conf }
plugin { quota = dict:user::proxy::quotadict
expire = Trash 7 Trash/* 7 Spam 30 expire_dict = proxy::expire expire_altmove = * 2555
sieve_global_path = /home/mail/sieve/global.sieve sieve_global_dir = /home/mail/sieve sieve_dir=/home/mail/%d/%n/sieve
}
As said, everything works, eventually, but mail delivery is delayed a lot.
Thanks,
Jerrale G UPDATE: The expires dictionary was being used correctly as, with one day of use, there is 10000 records; I'm going to have to revise the mysql indexes for performance.
Jerrale G,
SCA
On 8/11/2010 3:50 AM, Jerrale G wrote:
On 8/10/2010 3:16 PM, Jerrale G wrote:
chmod -R 775 /var/run/dovecot dovecot & Warning: Corrected permissions for login directory /var/run/dovecot/login ls -l /var/run/dovecot srw-rw-rw- 1 root root 0 Aug 10 15:02 auth-master srw------- 1 mail mail 0 Aug 10 15:02 auth-worker.2774 srwxrwxrwx 1 root root 0 Aug 10 15:02 dict-server lrwxrwxrwx 1 root root 17 Aug 10 15:02 dovecot.conf -> /etc/dovecot.conf drwxr-x--- 2 root dovecot 4096 Aug 10 15:02 login -rw------- 1 root root 5 Aug 10 15:02 master.pid
Everything works, eventually. All mail will sooner or later get delivered, using dovecot LDA from postfix, but these errors rampage the log several times. I recently added managesieve, expires, and finished the quota which I thought was achived by simply having quota_rule as a result of mysql.
Aug 10 15:07:57 server1 dovecot: IMAP(someone@sheltoncomputers.com): read(/var/run/dovecot/dict-server) failed: Timeout after 30 seconds Aug 10 15:07:57 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered Aug 10 15:08:09 server1 last message repeated 4428 times
On another note, Thunderbird is starting to get on my nerves, sending this message before I was finished.
Here is the relevant config:
dovecot-mysql query:
user_query = SELECT CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/') AS home, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/', mailboxes.username, '.sieve') as sieve, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/') as sieve_dir, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/mail/') AS maildir, uid AS uid, gid AS gid, CONCAT('maildir:storage=', ROUND(mailboxes.quota/1200), 'M') AS quota_rule, 'Trash:ignore' AS quota_rule2 FROM mail.mailboxes WHERE username = '%n' AND domain = '%d' AND active = '1'
dovecot.conf: protocol managesieve { listen = localhost:2001 managesieve_implementation_string = dovecot managesieve_logout_format = bytes ( in=%i : out=%o ) mail_executable = /usr/libexec/dovecot/managesieve login_executable = /usr/libexec/dovecot/managesieve-login }
auth_debug = no auth default {
mechanisms = plain login
passdb sql { args = /etc/dovecot/dovecot-mysql.conf # scheme = cram-md5 } userdb sql { args = /etc/dovecot/dovecot-mysql.conf } user = mail socket listen { client { path = /var/spool/postfix/private/auth user = postfix group = postfix mode = 0660 } master { path = /var/run/dovecot/auth-master mode = 0666 } } } dict { # # NOTE: dict process currently runs as root, so this file will be owned as root. expire = mysql:/etc/dovecot/dict-expire.conf quotadict = mysql:/etc/dovecot/dict-quota.conf }
plugin { quota = dict:user::proxy::quotadict
expire = Trash 7 Trash/* 7 Spam 30 expire_dict = proxy::expire expire_altmove = * 2555
sieve_global_path = /home/mail/sieve/global.sieve sieve_global_dir = /home/mail/sieve sieve_dir=/home/mail/%d/%n/sieve
}
As said, everything works, eventually, but mail delivery is delayed a lot.
Thanks,
Jerrale G UPDATE: The expires dictionary was being used correctly as, with one day of use, there is 10000 records; I'm going to have to revise the mysql indexes for performance.
Jerrale G,
SCA PLEASE DO NOT REPLY TO ME HERE. I JUST REALIZED THIS IS THE LIST I ACCIDENTALLY HIJACKED. I THOUGHT TIMO SIRAINEN WAS TALKING ABOUT ANOTHER POST OF MINE WHEN HE SAID NOT TO REPLY TO ANOTHER THREAD TO START A NEW ONE. MY APPOLOGIES!!
On 8/11/2010 4:06 AM, Jerrale G wrote:
On 8/11/2010 3:50 AM, Jerrale G wrote:
On 8/10/2010 3:16 PM, Jerrale G wrote:
chmod -R 775 /var/run/dovecot dovecot & Warning: Corrected permissions for login directory /var/run/dovecot/login ls -l /var/run/dovecot srw-rw-rw- 1 root root 0 Aug 10 15:02 auth-master srw------- 1 mail mail 0 Aug 10 15:02 auth-worker.2774 srwxrwxrwx 1 root root 0 Aug 10 15:02 dict-server lrwxrwxrwx 1 root root 17 Aug 10 15:02 dovecot.conf -> /etc/dovecot.conf drwxr-x--- 2 root dovecot 4096 Aug 10 15:02 login -rw------- 1 root root 5 Aug 10 15:02 master.pid
Everything works, eventually. All mail will sooner or later get delivered, using dovecot LDA from postfix, but these errors rampage the log several times. I recently added managesieve, expires, and finished the quota which I thought was achived by simply having quota_rule as a result of mysql.
Aug 10 15:07:57 server1 dovecot: IMAP(someone@sheltoncomputers.com): read(/var/run/dovecot/dict-server) failed: Timeout after 30 seconds Aug 10 15:07:57 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered Aug 10 15:08:09 server1 last message repeated 4428 times
On another note, Thunderbird is starting to get on my nerves, sending this message before I was finished.
Here is the relevant config:
dovecot-mysql query:
user_query = SELECT CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/') AS home, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/', mailboxes.username, '.sieve') as sieve, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/sieve/') as sieve_dir, CONCAT('/home/mail/', mailboxes.domain, '/', mailboxes.username, '/mail/') AS maildir, uid AS uid, gid AS gid, CONCAT('maildir:storage=', ROUND(mailboxes.quota/1200), 'M') AS quota_rule, 'Trash:ignore' AS quota_rule2 FROM mail.mailboxes WHERE username = '%n' AND domain = '%d' AND active = '1'
dovecot.conf: protocol managesieve { listen = localhost:2001 managesieve_implementation_string = dovecot managesieve_logout_format = bytes ( in=%i : out=%o ) mail_executable = /usr/libexec/dovecot/managesieve login_executable = /usr/libexec/dovecot/managesieve-login }
auth_debug = no auth default {
mechanisms = plain login
passdb sql { args = /etc/dovecot/dovecot-mysql.conf # scheme = cram-md5 } userdb sql { args = /etc/dovecot/dovecot-mysql.conf } user = mail socket listen { client { path = /var/spool/postfix/private/auth user = postfix group = postfix mode = 0660 } master { path = /var/run/dovecot/auth-master mode = 0666 } } } dict { # # NOTE: dict process currently runs as root, so this file will be owned as root. expire = mysql:/etc/dovecot/dict-expire.conf quotadict = mysql:/etc/dovecot/dict-quota.conf }
plugin { quota = dict:user::proxy::quotadict
expire = Trash 7 Trash/* 7 Spam 30 expire_dict = proxy::expire expire_altmove = * 2555
sieve_global_path = /home/mail/sieve/global.sieve sieve_global_dir = /home/mail/sieve sieve_dir=/home/mail/%d/%n/sieve
}
As said, everything works, eventually, but mail delivery is delayed a lot.
Thanks,
Jerrale G UPDATE: The expires dictionary was being used correctly as, with one day of use, there is 10000 records; I'm going to have to revise the mysql indexes for performance.
Jerrale G,
SCA
I took the latest snapshot of dovecot. The same error is still happening, with: Aug 12 05:10:43 server1 postfix/pipe[23217]: 6966D330156: to=someone@sheltoncomputers.com, relay=dovecot, delay=90, delays=0.01/0.01/0/90, dsn=2.0.0, status=sent (delivered via dovecot service) Aug 12 05:10:43 server1 postfix/qmgr[14485]: 6966D330156: removed Aug 12 05:10:43 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered
This happens every time someone logs in.
I will keep the snapshot running, mainly due to the working IDLE. Even though it didn't fix this part of the dict process, the crash, as the read patch said, is fixed AND the imap process doesn't freeze anymore, an earlier effect of this other dictionary error (with 1.2.13): Aug 12 05:10:43 server1 dovecot: dict: Fatal: dict_driver_register(mysql): Already registered
Meaning, even though the error isn't fixed, it doesn't cause any side effects, as of a twenty minute rigourous test, like the mentioned freezing of the imap process causing the various IMAP clients to freeze.
I have only the same patch, managesieve 0.11.11, which doesn't effect the dictionary process. With luck, you hadn't change anything and leave it open, causing an incomplete build; This allowed this snapshot to work. If you need me to tar up this source I will or you can just take a snapshot recent to the time of this email and apply the managesieve 0.11.11 patch to get the exact same source as I have.
I await either 2.0 production or a dovecot 1.2.14, whichever is sooner to come. Until then, Im pretty sure this snapshot is secure due to the very recent release of 1.2.13, hopefully :-~
Jerrale G SC Senior Admin
participants (2)
-
Jerrale G
-
Timo Sirainen