[Dovecot] Unknown dict module: mysql
Hi
I'm trying to set up the dict/expiry plugins, but the dict server always tells me it can't find the modules although they should be there and compiled in.
System is: Centos 5.2 64 bit, Using rpm from http://atrpms.net/dist/el5/dovecot/
dovecot --version 1.1.3
Relevant config:
dict { quotadict = mysql:/etc/dovecot-dict-quota.conf expire = mysql:/etc/dovecot-dict-expire.conf }
plugin {
quota = dict:::proxy::quotadict quota_rule = *:storage=10M:messages=1000 quota_warning = storage=95%% /usr/local/bin/quotawarning.py 95 quota_warning2 = storage=75%% /usr/local/bin/quotawarning.py 75
acl = vfile:/etc/dovecot-acls
expire = Trash 30 Trash/* 30 Spam 14 expire_dict = proxy::expire }
cat /etc/dovecot-dict-quota.conf connect = host=localhost dbname=*** user=*** password=*** table = quota select_field = current where_field = path username_field = username
Logoutput: Starting Dovecot Imap: ILoading modules from directory: /usr/lib64/dovecot/imap IModule loaded: /usr/lib64/dovecot/imap/lib01_acl_plugin.so IModule loaded: /usr/lib64/dovecot/imap/lib10_quota_plugin.so IModule loaded: /usr/lib64/dovecot/imap/lib11_imap_quota_plugin.so IModule loaded: /usr/lib64/dovecot/imap/lib20_expire_plugin.so IEffective uid=65534, gid=65534, home= IQuota root: name= backend=dict args=:proxy::quotadict Idict quota: user=dump-capability, uri=proxy::quotadict, enforcing=0 IQuota rule: root= mailbox=* bytes=10485760 (0%) messages=1000 (0%) IQuota warning: bytes=9961472 (95%) messages=0 (0%) command=/usr/local/bin/quotawarning.py 95 IQuota warning: bytes=7864320 (75%) messages=0 (0%) command=/usr/local/bin/quotawarning.py 75
When I try to use the dict (by moving mails via IMAP or by passing through the lda) I get:
Oct 1 10:52:15 inet2 deliver(oli@terrabyte.me): Loading modules from directory: /usr/lib64/dovecot/lda Oct 1 10:52:15 inet2 deliver(oli@terrabyte.me): Module loaded: /usr/lib64/dovecot/lda/lib10_quota_plugin.so Oct 1 10:52:15 inet2 deliver(oli@terrabyte.me): Module loaded: /usr/lib64/dovecot/lda/lib20_expire_plugin.so Oct 1 10:52:15 inet2 deliver(oli@terrabyte.me): Module loaded: /usr/lib64/dovecot/lda/lib90_cmusieve_plugin.so [...] Oct 1 10:52:15 inet2 dovecot: dict: Unknown dict module: mysql Oct 1 10:52:15 inet2 dovecot: dict: Failed to initialize dictionary 'quotadict' Oct 1 10:52:15 inet2 deliver(oli@terrabyte.me): read(/var/run/dovecot/dict-server) failed: Remote disconnected Oct 1 10:52:15 inet2 deliver(oli@terrabyte.me): Internal quota calculation error
I also ran the dict procy through strace to check where it searches for those modules, and I think it finds the correct files:
strace ./dict 2>&1 | grep mysql -A 1 open("/usr/lib64/dovecot/dict/libdriver_mysql.so", O_RDONLY) = 8 read(8, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\27\0\0\0\0\0\0"..., 832) = 832
open("/usr/lib64/mysql/libmysqlclient.so.15", O_RDONLY) = 8 read(8, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\2\202\2178\0\0\0"..., 832) = 832
Could anyone give me a hint what I could be doing wrong?
Thanks a lot, Oli
Oct 1 10:52:15 inet2 dovecot: dict: Unknown dict module: mysql Oct 1 10:52:15 inet2 dovecot: dict: Failed to initialize dictionary 'quotadict'
Problem seems to be related to dovecot 1.1.3 . 1.1.2 works fine with the same configuration.
Am I missing a config change between those versions?
Thanks, Oli
On Fri, 2008-10-03 at 09:19 +0200, Oli Schacher wrote:
Oct 1 10:52:15 inet2 dovecot: dict: Unknown dict module: mysql Oct 1 10:52:15 inet2 dovecot: dict: Failed to initialize dictionary 'quotadict'
Problem seems to be related to dovecot 1.1.3 . 1.1.2 works fine with the same configuration.
Am I missing a config change between those versions?
I think your v1.1.2 RPM was using compiled-in MySQL support, while v1.1.3 RPM is using dynamically loaded MySQL support. This patch should fix that: http://hg.dovecot.org/dovecot-1.1/rev/645ea17b4950
participants (2)
-
Oli Schacher
-
Timo Sirainen