After upgrading from 1.1.3 to 1.1.4 the imap process crashes as soon as moving a
mail to the Trash folder.
Belows backtrace points to the expire plugin...
Backtrace /usr/local/libexec/dovecot/imap:
Program terminated with signal 11, Segmentation fault.
#0 0x2adbeaa8 in expire_mailbox_transaction_commit (t=0x10045248,
uid_validity_r=0x7fff77fc, first_saved_uid_r=0x7fff7800,
last_saved_uid_r=0x7fff7804)
at expire-plugin.c:124
124 key = t_strconcat(DICT_PATH_SHARED, expire.username,
"/",
(gdb) bt full
#0 0x2adbeaa8 in expire_mailbox_transaction_commit (t=0x10045248,
uid_validity_r=0x7fff77fc, first_saved_uid_r=0x7fff7800,
last_saved_uid_r=0x7fff7804)
at expire-plugin.c:124
key = 0x7fff7800 "?\f"
value = 0x10010290 ""
_data_stack_cur_id = 4750760
xpr_box = (struct expire_mailbox *) 0x10042250
xt = (struct expire_transaction_context *) 0x10032f50
new_stamp = 268644240
update_dict = false
ret = 4
#1 0x2ace6b90 in quota_mailbox_transaction_commit (ctx=0x10045248,
uid_validity_r=0x7fff77fc, first_saved_uid_r=0x7fff7800,
last_saved_uid_r=0x7fff7804)
at quota-storage.c:95
qbox = (struct quota_mailbox *) 0x100422d0
qt = (struct quota_transaction_context *) 0x10032f60
#2 0x0048c90c in mailbox_transaction_commit_get_uids (_t=0x5,
uid_validity_r=0x7fff7f70, first_saved_uid_r=0x10009f90,
last_saved_uid_r=0x1006e6b0) at mail-storage.c:689
t = (struct mailbox_transaction_context *) 0x4
#3 0x00413430 in cmd_copy (cmd=0x100160c0) at cmd-copy.c:141
client = (struct client *) 0x10015e18
storage = (struct mail_storage *) 0x10015730
destbox = (struct mailbox *) 0x10042090
t = (struct mailbox_transaction_context *) 0x0
search_arg = (struct mail_search_arg *) 0x1
messageset = 0x1001a1c8 "7531"
mailbox = 0x1001a1d0 "Trash"
src_uidset = 0x1000a2b0 "7531"
msg = 0x0
sync_flags = 0
imap_flags = 0
copy_count = 1
uid_validity = 1181584605
uid1 = 3296
uid2 = 3296
ret = 1
#4 0x0041a964 in cmd_uid (cmd=0x100160c0) at cmd-uid.c:26
command = (struct command *) 0x1006e6b0
cmd_name = 0x1001a1c0 "copy"
#5 0x0041cb98 in client_command_input (cmd=0x100160c0) at client.c:580
client = (struct client *) 0x10015e18
command = (struct command *) 0x4
#6 0x0041c950 in client_command_input (cmd=0x100160c0) at client.c:629
client = (struct client *) 0x10015e18
command = (struct command *) 0x4
#7 0x0041cc78 in client_handle_next_command (client=0x10015e18,
remove_io_r=0x7fff7918) at client.c:645
size = 25
#8 0x0041cde0 in client_handle_input (client=0x10015e18) at client.c:680
_data_stack_cur_id = 3
ret = 24
remove_io = false
handled_commands = false
#9 0x0041d01c in client_input (client=0x10015e18) at client.c:725
cmd = (struct client_command_context *) 0x0
output = (struct ostream *) 0x10015ff8
bytes = 25
#10 0x004ec54c in io_loop_handler_run (ioloop=0x10012938) at ioloop-poll.c:204
ctx = (struct ioloop_handler_context *) 0x10012a30
pollfd = (struct pollfd *) 0x2
tv = {tv_sec = 4, tv_usec = 747645}
io = (struct io_file *) 0x10016058
t_id = 2
msecs = 4
ret = 0
call = false
#11 0x004eae40 in io_loop_run (ioloop=0x10012938) at ioloop.c:320
No locals.
#12 0x0042bae0 in main (argc=5, argv=0x7fff7a54, envp=0x7fff7a5c) at main.c:293
No locals.
dovecot -n:
# 1.1.4: /etc/dovecot/dovecot.conf
log_path: /var/log/mail/dovecot.log
info_log_path: /var/log/mail/dovecot.log
ssl_disable: yes
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable: /usr/local/libexec/dovecot/imap-login
login_process_size: 16
max_mail_processes: 16
mail_location: maildir:~/Maildir
mail_drop_priv_before_exec: yes
mail_process_size: 64
mail_plugins: quota imap_quota expire
auth default:
passdb:
driver: pam
userdb:
driver: passwd
socket:
type: listen
client:
path: /var/run/dovecot/auth-client
mode: 432
user: dovecot
group: mail
master:
path: /var/run/dovecot/auth-master
mode: 384
plugin:
quota: maildir
quota_rule: *:storage=1GB
quota_rule2: Trash:storage=10%%
expire: Trash 1
expire_dict: proxy::expiredict
dict:
expiredict: db:/var/lib/dovecot/expire.db