Autoexpunge is not working with dotlock locking

Aki Tuomi aki.tuomi at dovecot.fi
Wed Jan 24 15:02:09 EET 2018



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


More information about the dovecot mailing list