[Dovecot] MacOS X and quota-plugin

Lars Skovgaard lars at skovgaarddesign.dk
Wed Nov 8 23:20:50 UTC 2006


Hi all,

I've installed dovecot 1.0 rc12 on a MacOS X client system with only  
a handful of users – all virtual –  and would like to enable quotas.  
I've tried searching the wiki for information on how to do this, but  
haven't been able to find anything – which is why I turn to the list  
in hope there's someone out there who can point me in the right  
direction.

I've compiled dovecot without any other authentication than sql and  
pam, and have enabled ssl, pop3 and dovecot lda (for use with postfix  
when I get around to it). The installation went smoothly, and dovecot  
is working great without quota-support. However, when I enable quota- 
support, the imap child-process crashes. Here's a few lines from the  
log, slightly altered to protect user-identities:


Nov  8 23:05:09 SD-Server dovecot: imap-login: Login:  
user=<imapuser>, method=PLAIN, rip=192.168.2.10, lip=192.168.2.2, TLS
Nov  8 23:05:09 SD-Server dovecot: child 22662 (imap) killed with  
signal 11
Nov  8 23:05:09 SD-Server crashdump[22663]: imap crashed
Nov  8 23:05:09 SD-Server crashdump[22663]: crash report written to: / 
Library/Logs/CrashReporter/imap.crash.log
Nov  8 23:05:12 SD-Server dovecot: imap-login: Login: user=< imapuser  
 >, method=PLAIN, rip=192.168.2.10, lip=192.168.2.2, TLS
Nov  8 23:05:13 SD-Server dovecot: child 22665 (imap) killed with  
signal 11
Nov  8 23:05:13 SD-Server crashdump[22666]: imap crashed
Nov  8 23:05:13 SD-Server crashdump[22666]: crash report written to: / 
Library/Logs/CrashReporter/imap.crash.log
Nov  8 23:05:16 SD-Server dovecot: imap-login: Login: user=< imapuser  
 >, method=PLAIN, rip=192.168.2.10, lip=192.168.2.2, TLS
Nov  8 23:05:17 SD-Server dovecot: child 22670 (imap) killed with  
signal 11
Nov  8 23:05:17 SD-Server crashdump[22671]: imap crashed
Nov  8 23:05:17 SD-Server crashdump[22671]: crash report written to: / 
Library/Logs/CrashReporter/imap.crash.log


This is what I have done in dovecot.conf to enable quota:


protocol imap {
   mail_plugins = quota imap_quota
   mail_plugin_dir = /usr/local/lib/dovecot/imap
}

plugin {
   #quota = dict:storage=10240
   #quota = dirsize:storage=10240
   #quota = maildir:storage=10240
   #quota = maildir:storage=10240 mysql:/usr/local/etc/dovecot-sql.conf
   #quota = fs:storage=10240
   #quota = fs
}


As you might guess from the lines under "plugin", I've tried a lot of  
different combinations. If I enable ANY of the above lines under  
plugin, the child-processes die upon login. When all have been  
commented out, there's no more crashing – until I try to see how much  
space is available, then it crashes again. I've tried adding an extra  
"quota" field to my mysql userdb to handle quotas, but with the same  
result.

mysql-query looks like this (as described in the wiki):


user_query = SELECT home, uid, gid, 'dirsize:storage=' || quota_kb AS  
quota FROM users WHERE userid = '%u'


As with the settings in dovecot.conf, Ive tried various combinations  
of dict, dirsize and so on, but without any luck.

This is what the entries in my crashdump file looks like:


Host Name:      SD-Server
Date/Time:      2006-11-09 00:06:17.151 +0100
OS Version:     10.4.7 (Build 8J135)
Report Version: 4

Command: imap
Path:    /usr/local/libexec/dovecot/imap
Parent:  dovecot [8370]

Version: ??? (???)

PID:    23101
Thread: 0

Exception:  EXC_BAD_ACCESS (0x0001)
Codes:      KERN_PROTECTION_FAILURE (0x0002) at 0x00000044

Thread 0 Crashed:
0   lib01_quota_plugin.so      	0x00256ca8 quota_root_iter_next + 32  
(array.h:144)
1   lib02_imap_quota_plugin.so 	0x00273700 cmd_getquotaroot + 280  
(imap-quota-plugin.c:87)
2   imap                       	0x000076b8 _client_input + 556  
(client.c:377)
3   imap                       	0x0006e9a8 io_loop_handler_run + 424  
(ioloop-poll.c:200)
4   imap                       	0x0005e214 io_loop_run + 40 (ioloop.c: 
280)
5   imap                       	0x0000fd38 main + 1740 (main.c:241)
6   imap                       	0x00001df4 _start + 348 (crt.c:272)
7   imap                       	0x00001c94 start + 60

Thread 0 crashed with PPC Thread State 64:
   srr0: 0x0000000000256ca8 srr1:  
0x000000000200f030                        vrsave: 0x0000000000000000
     cr: 0x48000244          xer: 0x0000000000000004   lr:  
0x0000000000256c94  ctr: 0x0000000000256c88
     r0: 0x0000000000273700   r1: 0x00000000bffff410   r2:  
0x0000000000000000   r3: 0x0000000000501e10
     r4: 0x0000000000000010   r5: 0x0000000000000010   r6:  
0x0000000000000022   r7: 0x0000000000000000
     r8: 0x0000000000000002   r9: 0x0000000000501e20  r10:  
0x0000000000000000  r11: 0x0000000000275044
    r12: 0x0000000000256c88  r13: 0x0000000000000000  r14:  
0x0000000000000000  r15: 0x0000000000000000
    r16: 0x0000000000000000  r17: 0x0000000000000000  r18:  
0x0000000000000000  r19: 0x0000000000000000
    r20: 0x0000000000000000  r21: 0x0000000000000000  r22:  
0x0000000000000000  r23: 0x0000000000000000
    r24: 0x0000000000000000  r25: 0x000000000007e808  r26:  
0x0000000000000000  r27: 0x0000000000500a24
    r28: 0x0000000000501e10  r29: 0x0000000000500a24  r30:  
0x00000000002492d0  r31: 0x0000000000256c94

Binary Images Description:
     0x1000 -    0x7efff imap 	/usr/local/libexec/dovecot/imap
   0x253000 -   0x258fff lib01_quota_plugin.so 	/usr/local/lib/ 
dovecot/imap/lib01_quota_plugin.so
   0x273000 -   0x274fff lib02_imap_quota_plugin.so 	/usr/local/lib/ 
dovecot/imap/lib02_imap_quota_plugin.so
0x8fe00000 - 0x8fe52fff dyld 45.3	/usr/lib/dyld
0x90000000 - 0x901bbfff libSystem.B.dylib 	/usr/lib/libSystem.B.dylib
0x90213000 - 0x90218fff libmathCommon.A.dylib 	/usr/lib/system/ 
libmathCommon.A.dylib
0x92d65000 - 0x92e53fff libiconv.2.dylib 	/usr/lib/libiconv.2.dylib
0x936e3000 - 0x93703fff libmx.A.dylib 	/usr/lib/libmx.A.dylib


Best regards,
Lars


More information about the dovecot mailing list