[Dovecot] Fatal: dict_driver_register(mysql): Already registered
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. 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
Jerrale G wrote:
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.
Correction - it is in release candidate stage, with the final version slated for release within a week or two.
If you are still in testing/eval stage (sounds like it), I would recommend going with 2.0 unless there is a compelling reason not to...
--
Best regards,
Charles
On 8/11/2010 7:27 AM, Charles Marcus wrote:
Jerrale G wrote:
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. Correction - it is in release candidate stage, with the final version slated for release within a week or two.
If you are still in testing/eval stage (sounds like it), I would recommend going with 2.0 unless there is a compelling reason not to...
I don't see any dovecot-2.0-managesieve; this is a requirement for us to upgrade.
Jerrale G SC Senior Admin
Jerrale G wrote:
On 8/11/2010 7:27 AM, Charles Marcus wrote:
If you are still in testing/eval stage (sounds like it), I would recommend going with 2.0 unless there is a compelling reason not to...
I don't see any dovecot-2.0-managesieve; this is a requirement for us to upgrade.
Sorry, we're in the process of renovating our office space and I'm kind of slammed right now...
This should help:
http://wiki2.dovecot.org/ManageSieve
--
Best regards,
Charles
On Thu, 2010-08-12 at 17:51 +0100, Timo Sirainen wrote:
On Wed, 2010-08-11 at 04:19 -0400, Jerrale G wrote:
dict_driver_register(mysql): Already registered
What does "dovecot --build-options" say?
No, actually, forget about that. It doesn't show what I wanted to see. Instead show what src/lib-sql/sql-drivers-register.c contains in Dovecot's source directory?
On 8/12/2010 12:55 PM, Timo Sirainen wrote:
On Thu, 2010-08-12 at 17:51 +0100, Timo Sirainen wrote:
On Wed, 2010-08-11 at 04:19 -0400, Jerrale G wrote:
dict_driver_register(mysql): Already registered What does "dovecot --build-options" say? No, actually, forget about that. It doesn't show what I wanted to see. Instead show what src/lib-sql/sql-drivers-register.c contains in Dovecot's source directory?
-- dovecot --build-options is:
[root@mail bind-9.7.1-P2]# dovecot --build-options Build options: ioloop=epoll notify=inotify ipv6 openssl Mail storages: cydir dbox maildir mbox raw shared SQL drivers: mysql Passdb: checkpassword passwd-file sql Userdb: nss passwd-file prefetch sql static
sorry for the late reply timo
Jerrale G. SC Senior Admin
On 8/12/2010 12:55 PM, Timo Sirainen wrote:
On Thu, 2010-08-12 at 17:51 +0100, Timo Sirainen wrote:
On Wed, 2010-08-11 at 04:19 -0400, Jerrale G wrote:
dict_driver_register(mysql): Already registered What does "dovecot --build-options" say? No, actually, forget about that. It doesn't show what I wanted to see. Instead show what src/lib-sql/sql-drivers-register.c contains in Dovecot's source directory?
this is the C script you asked for Charles:
/* this file automatically generated by Makefile */ #include "lib.h" #include "sql-api.h" extern struct sql_db driver_mysql_db; void sql_drivers_register_all(void) { sql_driver_register(&driver_mysql_db); }
Jerrale G. SC Senior Admin
On Fri, 2010-08-13 at 04:18 -0400, Jerrale G wrote:
dict_driver_register(mysql): Already registered this is the C script you asked for Charles:
That looks ok too..
What happens if you run dict binary directly? Does it give the same "Already registered" error? If it does, run it via gdb:
gdb dict b dict_driver_register run cont cont
and show me the output of that.
On 8/13/2010 8:55 AM, Timo Sirainen wrote:
On Fri, 2010-08-13 at 04:18 -0400, Jerrale G wrote:
dict_driver_register(mysql): Already registered this is the C script you asked for Charles: That looks ok too..
What happens if you run dict binary directly? Does it give the same "Already registered" error? If it does, run it via gdb:
gdb dict b dict_driver_register run cont cont
and show me the output of that.
when running the debug, the first command yielded "dic: not found" or the relevant. I'm still getting the error. This is of no time sensitivity as we have a script that automatically "expires" different folders of every mailbox", storing backups for a year, and our quota is Maildir. I'm here to help you resolve it in case others have it with 1.2.13+
Jerrale G. SC Senior Admin
participants (3)
-
Charles Marcus
-
Jerrale G
-
Timo Sirainen