[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