Autoexpunge is not working with dotlock locking
Jaakko Seppälä
jaakko at seppala.me
Mon Jan 22 17:01:18 EET 2018
Hello,
Autoexpunge is not working when used with dotlock locking. It seems to
been broken since version 2.2.28.
When autoexpunge is enabled and mailbox locking is set to dotlock all
imap, pop and lmtp connections crash with the same error "file
file-lock.c: line 287: unreached".
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
LITERAL+ AUTH=PLAIN] Dovecot ready.
X LOGIN testuser password
X OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT
SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT
MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS
LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES
WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE LITERAL+ NOTIFY] Logged in
X LOGOUT
* BYE Logging out
X OK Logout completed (0.001 + 0.000 secs).
Connection closed by foreign host.
=>
Jan 22 09:25:55 dovecottest dovecot: imap-login: Login: user=<testuser>,
method=PLAIN, rip=::1, lip=::1, mpid=8274, secured,
session=<EDVCNV5jvNsAAAAAAAAAAAAAAAAAAAAB>
Jan 22 09:25:57 dovecottest dovecot:
imap(testuser)<8274><EDVCNV5jvNsAAAAAAAAAAAAAAAAAAAAB>: Panic: file
file-lock.c: line 287: unreached
Jan 22 09:25:57 dovecottest dovecot:
imap(testuser)<8274><EDVCNV5jvNsAAAAAAAAAAAAAAAAAAAAB>: Error: Raw
backtrace: /usr/local/lib/dovecot/libdovecot.so.0(+0xc8d24)
[0x7ff43bef5d24] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xc8dde)
[0x7ff43bef5dde] -> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0)
[0x7ff43be69190] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xcd8ff)
[0x7ff43befa8ff] ->
/usr/local/lib/dovecot/libdovecot.so.0(file_wait_lock_error+0x26)
[0x7ff43befac46] ->
/usr/local/lib/dovecot/libdovecot.so.0(file_try_lock_error+0x13)
[0x7ff43befacc3] ->
/usr/local/lib/dovecot/libdovecot.so.0(file_create_locked+0x253)
[0x7ff43bef7df3] ->
/usr/local/lib/dovecot/libdovecot-storage.so.0(mail_user_lock_file_create+0xc5)
[0x7ff43c1f5f15] ->
/usr/local/lib/dovecot/libdovecot-storage.so.0(mail_user_autoexpunge+0x1f8)
[0x7ff43c1dfc68] -> dovecot/imap(+0x1ba7c) [0x7ff43c72fa7c] ->
dovecot/imap(client_input+0xb5) [0x7ff43c7308c5] ->
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x65)
[0x7ff43bf0d315] ->
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x10f)
[0x7ff43bf0ebbf] ->
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x52)
[0x7ff43bf0d412] ->
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x38)
[0x7ff43bf0d638] ->
/usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
[0x7ff43be8bb73] -> dovecot/imap(main+0x333) [0x7ff43c7226c3] ->
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7ff43ba8bc05] ->
dovecot/imap(+0xe8a1) [0x7ff43c7228a1]
Jan 22 09:25:57 dovecottest dovecot:
imap(testuser)<8274><EDVCNV5jvNsAAAAAAAAAAAAAAAAAAAAB>: Fatal: master:
service(imap): child 8274 killed with signal 6 (core dumps disabled)
Configuration used for testing:
[root at dovecottest dovecot]# /usr/local/sbin/dovecot -n
# 2.3.0 (c8b89eb): /usr/local/etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-514.el7.x86_64 x86_64 CentOS Linux release 7.3.1611
(Core)
lock_method = dotlock
mail_location = maildir:~/Maildir
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox INBOX {
autoexpunge = 30 days
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
service lmtp {
inet_listener lmtp {
port = 24
}
}
ssl = no
userdb {
driver = passwd
}
Regards,
Jaakko
More information about the dovecot
mailing list