[Dovecot] Segmentation fault in doveadm with lib01_acl_plugin.so

Alessio Cecchi alessio at skye.it
Sat Oct 13 11:16:27 EEST 2012


Hi,

I'm running dovecot 2.1.10 on Debian 6.

When I run "doveadm expunge -A mailbox Trash savedbefore 30d" it crash 
with "Segmentation fault"

[15022673.496902] doveadm[13072]: segfault at 8 ip 00007f4b7041f551 sp 
00007fffdab4f8c0 error 4 in lib01_acl_plugin.so[7f4b70415000+10000]

If I add -D to doveadm I can see this:

doveadm(myuser at mydomain.com): Debug: Added userdb setting: 
plugin/quota_rule=*:backend=524288000S
doveadm(myuser at mydomain.com): Debug: Effective uid=89, gid=89, 
home=/home/vpopmail/domains/2/mydomain.com/myuser
doveadm(myuser at mydomain.com): Debug: Quota root: name=UserQuota 
backend=maildir args=
doveadm(myuser at mydomain.com): Debug: Quota rule: root=UserQuota 
mailbox=* bytes=524288000 messages=0
doveadm(myuser at mydomain.com): Debug: Quota rule: root=UserQuota 
mailbox=Trash bytes=+104857600 messages=0
doveadm(myuser at mydomain.com): Debug: Quota root: name=User quota 
backend=dict args=:noenforcing:proxy::quota
doveadm(myuser at mydomain.com): Debug: dict quota: 
user=myuser at mydomain.com, uri=proxy::quota, noenforcing=1
doveadm(myuser at mydomain.com): Debug: Namespace inbox: type=private, 
prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes 
location=maildir:~/Maildir
doveadm(myuser at mydomain.com): Debug: maildir++: 
root=/home/vpopmail/domains/2/mydomain.com/myuser/Maildir, index=, 
control=, inbox=/home/vpopmail/domains/2/mydomain.com/myuser/Maildir, 
alt=
doveadm(myuser at mydomain.com): Debug: acl: initializing backend with 
data: 
vfile:/usr/local/dovecot-2.1/etc/dovecot/global-acls:cache_secs=300
doveadm(myuser at mydomain.com): Debug: acl: acl username = 
myuser at mydomain.com
doveadm(myuser at mydomain.com): Debug: acl: owner = 1
doveadm(myuser at mydomain.com): Debug: acl vfile: Global ACL directory: 
/usr/local/dovecot-2.1/etc/dovecot/global-acls
doveadm(myuser at mydomain.com): Debug: Namespace : type=shared, 
prefix=shared/%n/, sep=/, inbox=no, hidden=no, list=children, 
subscriptions=no location=maildir:%h/Maildir:INDEX=~/Maildir/shared/%u
doveadm(myuser at mydomain.com): Debug: shared: 
root=/usr/local/dovecot-2.1/var/run/dovecot, index=, control=, inbox=, 
alt=
doveadm(myuser at mydomain.com): Debug: acl: initializing backend with 
data: 
vfile:/usr/local/dovecot-2.1/etc/dovecot/global-acls:cache_secs=300
doveadm(myuser at mydomain.com): Debug: acl: acl username = 
myuser at mydomain.com
doveadm(myuser at mydomain.com): Debug: acl: owner = 0
doveadm(myuser at mydomain.com): Debug: acl vfile: Global ACL directory: 
/usr/local/dovecot-2.1/etc/dovecot/global-acls
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=276
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=277
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=278
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=279
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=280
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=281
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=282
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=283
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=284
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=285
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=286
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=287
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=288
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=289
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=290
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=291
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=292
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=293
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=294
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=295
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=296
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=297
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=298
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=299
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=300
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=301
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=302
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=303
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=304
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=305
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=306
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=307
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=308
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=309
doveadm(myuser at mydomain.com): Debug: expunge: box=Trash uid=310
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/usr/local/dovecot-2.1/etc/dovecot/global-acls//.DEFAULT not found
doveadm(myuser at mydomain.com): Debug: Namespace : Using permissions from 
/home/vpopmail/domains/2/mydomain.com/myuser/Maildir: mode=0700 gid=-1
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/usr/local/dovecot-2.1/etc/dovecot/global-acls/Drafts not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/home/vpopmail/domains/2/mydomain.com/myuser/Maildir/.Drafts/dovecot-acl 
not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/usr/local/dovecot-2.1/etc/dovecot/global-acls/Spam not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/home/vpopmail/domains/2/mydomain.com/myuser/Maildir/.Spam/dovecot-acl 
not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/usr/local/dovecot-2.1/etc/dovecot/global-acls/Sent not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/home/vpopmail/domains/2/mydomain.com/myuser/Maildir/.Sent/dovecot-acl 
not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/usr/local/dovecot-2.1/etc/dovecot/global-acls/Trash not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/home/vpopmail/domains/2/mydomain.com/myuser/Maildir/.Trash/dovecot-acl 
not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/usr/local/dovecot-2.1/etc/dovecot/global-acls/INBOX not found
doveadm(myuser at mydomain.com): Debug: acl vfile: file 
/home/vpopmail/domains/2/mydomain.com/myuser/Maildir/dovecot-acl not 
found
Segmentation fault

If I disable "acl" plugin in dovecot all works fine. I think that this 
problem is connected with "Dovecot deliver Segmentation fault when 
arrive the first message" 
http://www.dovecot.org/list/dovecot/2012-September/068343.html that I'm 
still experiencing.

How can get core dumps from "doveadm"?

This is my dovecot config with acl enabled:

# 2.1.10: /usr/local/dovecot-2.1/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.6
auth_cache_size = 512 k
auth_worker_max_count = 60
default_login_user = nobody
dict {
   acl = 
mysql:/usr/local/dovecot-2.1/etc/dovecot/dovecot-share-folder.conf
   quota = 
mysql:/usr/local/dovecot-2.1/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
dotlock_use_excl = no
first_valid_gid = 89
first_valid_uid = 89
last_valid_gid = 89
last_valid_uid = 89
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
log_path = /var/log/dovecot/dovecot.log
mail_fsync = always
mail_location = maildir:~/Maildir
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = quota acl
maildir_very_dirty_syncs = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope 
encoded-character vacation subaddress comparator-i;ascii-numeric 
relational regex imap4flags copy include variables body enotify 
environment mailbox date ihave
mmap_disable = yes
namespace {
   list = children
   location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
   prefix = shared/%%n/
   separator = /
   subscriptions = no
   type = shared
}
namespace inbox {
   inbox = yes
   location =
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox Spam {
     auto = subscribe
     special_use = \Junk
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix =
   separator = /
}
passdb {
   args = /usr/local/dovecot-2.1/etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
plugin {
   acl = 
vfile:/usr/local/dovecot-2.1/etc/dovecot/global-acls:cache_secs=300
   acl_shared_dict = proxy::acl
   quota = maildir:UserQuota
   quota2 = dict:User quota::noenforcing:proxy::quota
   quota_rule2 = Trash:storage=+100M
   sieve = ~/.dovecot.sieve
   sieve_default = 
/usr/local/dovecot-2.1/etc/dovecot/sieve/default.sieve
   sieve_dir = ~/sieve
}
protocols = imap pop3 sieve
sendmail_path = /var/qmail/bin/sendmail
service auth {
   unix_listener auth-userdb {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
}
service dict {
   unix_listener dict {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
}
service imap-login {
   service_count = 0
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
}
service pop3-login {
   service_count = 0
}
ssl_cert = </etc/ssl/certs/wildcard.net.pem
ssl_key = </etc/ssl/private/wildcard.net.key
userdb {
   args = /usr/local/dovecot-2.1/etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
protocol lda {
   log_path = /var/log/dovecot/lda.log
   mail_plugins = quota acl sieve
}
protocol imap {
   imap_client_workarounds = delay-newmail tb-extra-mailbox-sep 
tb-lsub-flags
   mail_max_userip_connections = 20
   mail_plugins = quota acl imap_quota imap_acl
}
protocol sieve {
   mail_max_userip_connections = 10
}
protocol pop3 {
   mail_max_userip_connections = 5
   pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

Thanks






More information about the dovecot mailing list