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