On 22.01.2018 17:01, Jaakko Sepp?l? wrote:> 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
Hi!
Thanks for reporting this, we'll look into it.
Aki