Articles in this section

Mailbox access error on Plesk for Linux: Panic: file mail-index-sync-keywords.c: assertion failed

Plesk for Linux kb: technical

Applicable to:

  • Plesk for Linux

Symptoms

  • A mailbox was migrated from cPanel to Plesk.

  • Inbox or Sent folders can be empty, but mails exist on the server.

  • The following error may be displayed in the Thunderbird mail client
  • The following errors may appear in the /var/log/maillog file in an attempt to access mailbox via Thunderbird, send an email to the Plesk server, or when accessing a specific directory in the mailbox:

    CONFIG_TEXT: server dovecot: service=imap, user=johndoe@example.com, ip=[203.0.113.2]. Panic: file mail-index-sync-keywords.c: line 228 (keywords_update_records): assertion failed: (data_offset >= sizeof(struct mail_index_record))
    server dovecot: service=imap, user=johndoe@example.com, ip=[203.0.113.2]. Error: Raw backtrace:
    ...


    CONFIG_TEXT: hostname dovecot: service=imap, user=johndoe@example.com, ip=[127.0.0.1]. Fatal: master: service(imap): child 24963 killed with signal 6


    CONFIG_TEXT: hostname dovecot: service=imap, user=johndoe@example.com, ip=[127.0.0.1]. Error: Corrupted record in index cache file /var/qmail/mailnames/example.com/johndoe/Maildir/dovecot.index.cache: UID 70: Broken physical size in mailbox INBOX


    CONFIG_TEXT: Error: Mailbox INBOX: UID=68: read(/var/qmail/mailnames/example.com/johndoe/Maildir/cur/1323171020.15581.example.com,S=7620:2,RS) failed: Cached message size smaller than expected (7620 < 7660, box=INBOX, UID=68) (read reason=)

  • The following error could be displayed on a side of the Thunderbird mailclient.

    CONFIG_TEXT: The STAT command did not succeed. Error getting message number and sizes. Mail server ns1.pleskserver22.nl responded: [SYS/TEMP] Internal error occurred. Refer to server log for more information.

Cause

Corrupted Dovecot index file.

Resolution

  1. Connect to the server via SSH.

  2. Rename the /var/qmail/mailnames/example.com/johndoe/Maildir/dovecot.index file:

    # mv /var/qmail/mailnames/example.com/johndoe/Maildir/dovecot.index /var/qmail/mailnames/example.com/johndoe/Maildir/dovecot.index.back

  3. Move the dovecot.index file in the directory to which the access is not possible or folder is empty e.g. "Sent":

    # mv /var/qmail/mailnames/example.com/johndoe/Maildir/.Sent/dovecot.index /var/qmail/mailnames/example.com/johndoe/Maildir/.Sent/dovecot.index.back

  4. Access the mailbox via webmail to regenerate the dovecot.index files.

dovecot.index files may not regenerate sometimes after applying the steps above. In these cases:

1. Move all dovecot.* and dovecot-* files out of /var/qmail/mailnames/example.com/johndoe/Maildir and from an affected directory (e.g. .Sent)

2. Restart Dovecot (warning: will cause downtime for the mail service):

# service dovecot restart

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.