Hi folks,
with the brandnew release Dovecot 1.1.2, the daemon killed itself
with signal 6 (SIGABRT) when trying to save a mail from the INBOX
to another folder. The mail client is PINE 4.64. After reconnecting
to the IMAP server, the mail was actually copied to the destination
folder, but the original mail was still in the INBOX and not flagged
as "deleted".
This is the panic:
Jul 25 02:13:25 linux dovecot: Panic: IMAP(user2): file index-sync.c: line 39
(index_mailbox_set_recent_uid): assertion failed:
(seq_range_exists(&ibox->recent_flags, uid))
Jul 25 02:13:25 linux dovecot: IMAP(user2): Raw backtrace: imap [0x80cf8e0]
-> imap [0x80cf93a] -> imap [0x80cf26c] -> imap [0x809d11a] ->
imap(index_mailbox_set_recent_seq+0x3e) [0x809d15e] -> imap(mbox_sync+0x105d)
[0x80823fd] -> imap [0x807a454] -> imap(index_transaction_commit+0x4e)
[0x809ddfe] -> imap(cmd_copy+0x35f) [0x805b26f] -> imap [0x805fd7c] ->
imap [0x805fe25] -> imap [0x80605e5] -> imap(client_input+0x5e)
[0x80607fe] -> imap(io_loop_handler_run+0x100) [0x80d7230] ->
imap(io_loop_run+0x28) [0x80d63c8] -> imap(main+0x4a1) [0x8068321] ->
/lib/libc.so.6(__libc_start_main+0xe0) [0x149390] -> imap [0x805a101]
Jul 25 02:13:25 linux dovecot: child 7954 (imap) killed with signal 6
Thus, the daemon died somewhere between successfully saving a copy
of the mail from INBOX to the destination folder and flagging it to
be deleted in the INBOX.
Just a couple of minutes later, Dovecot died again. Wanted to save
a message from INBOX to another folder. But this time, the message
wasn't written to the destination folder. As before, the original
mail in the INBOX didn't change any flags.
Jul 25 02:22:07 linux dovecot: Panic: IMAP(user2): file message-parser.c: line
770 (message_parser_parse_next_block): assertion failed: (ctx->input->eof
|| ctx->input->closed || ctx->input->stream_errno != 0 ||
ctx->broken)
Jul 25 02:22:07 linux dovecot: IMAP(user2): Raw backtrace: imap [0x80cf8e0]
-> imap [0x80cf93a] -> imap [0x80cf26c] ->
imap(message_parser_parse_body+0) [0x80c8ba0] ->
imap(message_parser_parse_body+0x1e) [0x80c8bbe] -> imap [0x8095120] ->
imap [0x809528c] -> imap(index_mail_get_special+0x3a7) [0x8095757] -> imap
[0x8061b94] -> imap(imap_fetch+0x148) [0x80620f8] -> imap(cmd_fetch+0x28e)
[0x805bcae] -> imap [0x805fd7c] -> imap [0x805fe25] -> imap [0x80605e5]
-> imap(client_input+0x5e) [0x80607fe] -> imap(io_loop_handler_run+0x100)
[0x80d7230] -> imap(io_loop_run+0x28) [0x80d63c8] -> imap(main+0x4a1)
[0x8068321] -> /lib/libc.so.6(__libc_start_main+0xe0) [0x149390] -> imap
[0x805a101]
Jul 25 02:22:07 linux dovecot: child 17931 (imap) killed with signal 6
The error cannot be reproduced with these messages. They can be
saved/copied now without problems back and forth. I've tried to
send more mail and reproduce the problem, but no success. Works
perfectly fine.
Dovecot 1.1.2 is running on Fedora 8 Linux 32 Bit with all patches
and custom OpenSSL 0.9.8h.
[ output of "dovecot -n" ]
# 1.1.2: /usr/local/dovecot/etc/dovecot.conf
ssl_cert_file: /usr/local/dovecot/etc/dovecot.crt
ssl_key_file: /usr/local/dovecot/etc/dovecot.key
login_dir: /usr/local/dovecot/var/run/dovecot/login
login_executable: /usr/local/dovecot/libexec/dovecot/imap-login
mail_location: mbox:~/Mail:INBOX=/var/spool/mail/%u
auth default:
mechanisms: plain login digest-md5 cram-md5
passdb:
driver: passwd-file
args: /usr/local/dovecot/etc/dovecot.passwd
userdb:
driver: passwd-file
args: /usr/local/dovecot/etc/dovecot.passwd
The problem was reported by a user who continued to work with
his mail folders. I was only a few seconds too late to grab a
copy of the INBOX and index files.
Greetings, Andreas