[Dovecot] Lazyexpunge and Segmentation fault

mailing at securitylabs.it mailing at securitylabs.it
Mon Nov 30 16:25:34 EET 2009


Hello, I'm experimenting with the Lazyexpunge plugin on a test machine 
with Dovecot 1.2.8 on Debian 5.0.

This is my conf

# 1.2.8: /usr/local/etc/dovecot.conf
# OS: Linux 2.6.26-2-xen-686 i686 Debian 5.0.3
log_timestamp: %Y-%m-%d %H:%M:%S
protocols: imap pop3 imaps pop3s
ssl_cert_file: /usr/local/etc/dovecot.crt
ssl_key_file: /usr/local/etc/dovecot.key
disable_plaintext_auth: no
login_dir: /usr/local/var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
login_greeting: Server ready.
max_mail_processes: 256
mail_max_userip_connections(default): 10
mail_max_userip_connections(imap): 10
mail_max_userip_connections(pop3): 3
first_valid_uid: 100
last_valid_uid: 105
mail_privileged_group: Debian-exim
mail_uid: Debian-exim
mail_gid: Debian-exim
mail_location: maildir:~/Maildir:INDEX=/var/indexes/%d/%n
mail_debug: yes
fsync_disable: yes
mail_nfs_storage: no
lock_method: dotlock
mail_drop_priv_before_exec: yes
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_plugins(default): quota imap_quota mail_log lazy_expunge
mail_plugins(imap): quota imap_quota mail_log lazy_expunge
mail_plugins(pop3): quota mail_log
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
pop3_no_flag_updates: yes
namespace:
   type: private
   separator: /
   inbox: yes
   list: yes
   subscriptions: yes
namespace:
   type: private
   separator: /
   prefix: EXPUNGED/
   location: maildir:~/Maildir/expunged
   list: yes
   subscriptions: yes
namespace:
   type: private
   separator: /
   prefix: DELETED/
   location: maildir:~/Maildir/deleted
   list: yes
   subscriptions: yes
namespace:
   type: private
   separator: /
   prefix: DELETED/EXPUNGED/
   location: maildir:~/Maildir/deleted/expunged
   list: yes
   subscriptions: yes
lda:
   mail_plugins: quota sieve
   postmaster_address: postmaster at securitylabs.it
auth default:
   cache_size: 1000
   cache_ttl: 120
   cache_negative_ttl: 120
   user: Debian-exim
   username_chars: 
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@&
   master_user_separator: *
   passdb:
     driver: sql
     args: /usr/local/etc/dovecot-sql.conf
   passdb:
     driver: passwd-file
     args: /usr/local/etc/passwd.masterusers
     pass: yes
     master: yes
   userdb:
     driver: sql
     args: /usr/local/etc/dovecot-sql.conf
   socket:
     type: listen
     master:
       path: /usr/local/var/run/dovecot/auth-master
       mode: 384
       user: 102
       group: 104
plugin:
   quota: maildir
   quota_warning: storage=80%% /usr/local/bin/dovecot-quota-warning.sh 80
   quota_warning2: storage=90%% /usr/local/bin/dovecot-quota-warning.sh 90
   mail_log_events: delete expunge
   mail_log_group_events:
   sieve: ~/.dovecot.sieve
   lazy_expunge: EXPUNGED/ DELETED/ DELETED/EXPUNGED/


I've added the namespace and enabled the plugin for the test as reported 
here:

http://wiki.dovecot.org/Plugins/Lazyexpunge.

Now every time I try to expunge a mailbox dovecot crash. Here the strace:

15:09:21.054191 gettimeofday({1259590161, 54371}, {0, 0}) = 0
15:09:21.054418 gettimeofday({1259590161, 54438}, NULL) = 0
15:09:21.054530 epoll_wait(5, {}, 4, 3159) = 0
15:09:24.213497 gettimeofday({1259590164, 213531}, {0, 0}) = 0
15:09:24.213574 gettimeofday({1259590164, 213591}, NULL) = 0
15:09:24.213623 epoll_wait(5, {{EPOLLIN, {u32=146866728, 
u64=146866728}}}, 4, 3207) = 1
15:09:25.769640 gettimeofday({1259590165, 769672}, {0, 0}) = 0
15:09:25.769709 gettimeofday({1259590165, 769726}, NULL) = 0
15:09:25.769760 read(0, "DONE\r\n"..., 4015) = 6
15:09:25.769836 epoll_ctl(5, EPOLL_CTL_DEL, 0, {0, {u32=146866728, 
u64=146866728}}) = 0
15:09:25.769895 inotify_rm_watch(10, 2) = 0
15:09:25.770188 inotify_rm_watch(10, 1) = 0
15:09:25.770236 epoll_ctl(5, EPOLL_CTL_DEL, 10, {0, {u32=147113264, 
u64=147113264}}) = 0
15:09:25.770295 setsockopt(1, SOL_TCP, TCP_CORK, [1], 4) = 0
15:09:25.770353 write(1, "5 OK Idle completed.\r\n"..., 22) = 22
15:09:25.770416 setsockopt(1, SOL_TCP, TCP_CORK, [0], 4) = 0
15:09:25.770477 gettimeofday({1259590165, 770504}, NULL) = 0
15:09:25.770542 epoll_ctl(5, EPOLL_CTL_ADD, 0, 
{EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=146866728, u64=146866728}}) = 0
15:09:25.770601 gettimeofday({1259590165, 770649}, NULL) = 0
15:09:25.770681 epoll_wait(5, {{EPOLLIN, {u32=146866728, 
u64=146866728}}}, 4, 3443) = 1
15:09:25.804121 gettimeofday({1259590165, 804143}, {0, 0}) = 0
15:09:25.804177 gettimeofday({1259590165, 804193}, NULL) = 0
15:09:25.804224 read(0, "6 uid store 10162:10163,10165:101"..., 4009) = 61
15:09:25.804324 gettimeofday({1259590165, 804343}, NULL) = 0
15:09:25.804405 
stat64("/var/indexes/securitylabs.it/mailing/.Debian/dovecot.index.log", 
{st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.804539 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.804610 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.804697 
stat64("/var/vexim/securitylabs.it/mailing/Maildir/.Debian/new", 
{st_mode=S_IFDIR|0700, st_size=40960, ...}) = 0
15:09:25.804790 
stat64("/var/vexim/securitylabs.it/mailing/Maildir/.Debian/cur", 
{st_mode=S_IFDIR|0700, st_size=581632, ...}) = 0
15:09:25.804880 
stat64("/var/vexim/securitylabs.it/mailing/Maildir/.Debian", 
{st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
15:09:25.804967 
chown32("/var/vexim/securitylabs.it/mailing/Maildir/.Debian", 102, -1) = 0
15:09:25.805033 
open("/var/vexim/securitylabs.it/mailing/Maildir/.Debian/dovecot-uidlist", 
O_RDONLY|O_LARGEFILE) = 11
15:09:25.805103 close(11)               = 0
15:09:25.805148 
stat64("/var/vexim/securitylabs.it/mailing/Maildir/.Debian/dovecot-uidlist", 
{st_mode=S_IFREG|0600, st_size=66630, ...}) = 0
15:09:25.805239 fstat64(8, {st_mode=S_IFREG|0600, st_size=66630, ...}) = 0
15:09:25.805311 
stat64("/var/indexes/securitylabs.it/mailing/.Debian/dovecot.index.log", 
{st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.805402 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.805470 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.805570 
stat64("/var/indexes/securitylabs.it/mailing/.Debian/dovecot.index.log", 
{st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.805664 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.805732 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.805809 gettimeofday({1259590165, 805826}, NULL) = 0
15:09:25.805864 setsockopt(1, SOL_TCP, TCP_CORK, [1], 4) = 0
15:09:25.805912 write(1, "6 OK Store completed.\r\n"..., 23) = 23
15:09:25.805973 setsockopt(1, SOL_TCP, TCP_CORK, [0], 4) = 0
15:09:25.806032 gettimeofday({1259590165, 806057}, NULL) = 0
15:09:25.806089 epoll_wait(5, {{EPOLLIN, {u32=146866728, 
u64=146866728}}}, 4, 3407) = 1
15:09:25.816436 gettimeofday({1259590165, 816458}, {0, 0}) = 0
15:09:25.816491 gettimeofday({1259590165, 816508}, NULL) = 0
15:09:25.816539 read(0, "7 expunge\r\n"..., 3948) = 11
15:09:25.816608 
stat64("/var/indexes/securitylabs.it/mailing/.Debian/dovecot.index.log", 
{st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.816706 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.816775 fstat64(6, {st_mode=S_IFREG|0600, st_size=5684, ...}) = 0
15:09:25.816889 gettimeofday({1259590165, 816908}, NULL) = 0
15:09:25.816954 --- SIGSEGV (Segmentation fault) @ 0 (0) ---

Another trouble I have is that now every time i select (with 
Thunderbird) a special folder (like "Sent", "Drafts") I receive this error:

"The current command did not succeed. Tha mail server 
responded:Character not allowed in mailbox name: '.' "

I've never configured namespace before, so I suspect a misconfiguration 
but I can't figure out.

P.S. this machine is behind a proxy with same version of dovecot and 
same OS. I don't have modified the configuration of the proxy.

Thanks for the support, Igor


More information about the dovecot mailing list