[Dovecot] Fatal: dict_driver_register(mysql): Already registered

Jerrale G jerrale at sheltoncomputers.com
Wed Aug 11 11:19:16 EEST 2010


  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 at 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.  With The dict {}  and expire-related parts commented out, 
operation has no errors or delays; performance is exceptional with 
maildir, quota, sieve, and managesieve. I don't think managesieve would 
patch any part of the dictionary code as it only has to do with another 
service process, not a plugin; if the patching was to cause problems 
with other services, for the service definition coding, the other 
services would have a problem, correct?

The expires dictionary mysql table was being correctly used, with one 
day of use, as there are 10000 records; I'm going to have to revise the 
mysql indexes for performance in case I am able to fix the dictionary 
problem.  We like the 1.2.13 version of dovecot, as far as security, and 
wonder how I can find a correct defintion scripting for the dict {}, 
from a previous version, and merge. We are use to windows compilations. 
I am skeptical to go to dovecot 2.0 as our services are in production 
and 2.0 is beta.

I have recompiled several times with fresh sources of dovecot 1.2.13, 
managesieve 0.11.11 patchl, and sieve 1.0.17 as directed by the Dovecot 
Wiki.


Jerrale G,
SCA



More information about the dovecot mailing list