Aborted dsync backup and resulting fallout
Hi,
I am in the middle of setting up a dovecot imap server to replace an aging cyrus imapd.
The new server is using mdbox storage for better filesystem performance and is running dovecot-2.2.32.
To migrate email over and keep UIDs etc. intact I used the backup feature of doveadm. During testing this generally worked fine. So thanks for that functionality, it really makes migration much easier.
I did another sync yesterday which was unintentionally aborted in the middle which left some corrupted files around.
Not a problem generally, that's what doveadm force-resync should fix. It did move a m.2 to m.2.broken mailbox file, so that is good. But it seemed to have issues with the m.3 file, which was an empty file of 0 bytes.
Even running force-resync a repeatedly always showed the same message:
# doveadm force-resync -u cd INBOX doveadm(cd): Warning: fscking index file /var/spool/imap/user/cd/storage/dovecot.map.index doveadm(cd): Warning: mdbox /var/spool/imap/user/cd/storage: rebuilding indexes doveadm(cd): Error: Corrupted dbox file /var/spool/imap/user/cd/storage/m.3 (around offset=0): EOF while reading file header doveadm(cd): Error: mdbox rebuild: Failed to fix file /var/spool/imap/user/cd/storage/m.3
This looks like incorrect behavior. If the file header on a file expected to be a mailbox header is absent, I would expect it to be either best-effort parsed and the header added or at least be moved out of the way as e.g. m.3.broken.
After fixing the m.3 storage manually I encountered another kind of error running dsync again:
dsync(cd): Error: lucene index /var/spool/imap/user/cd/lucene-indexes: IndexReader::open() failed (#1): IndexInput read past EOF
Lucene index broken should be easily fixed by running doveadm fts rescan. Is that correct?
The other error thought had to do with the single instance store for attachments.
There were a bunch of errors about a broken pipe and three errors stating success instead:
dsync(cd): Error: fs-sis: Couldn't read hash file /var/spool/imap/attachments/c3/0c/hashes/c30cb535927c8bcecb0d45d374624942d0f4e56e: Broken pipe dsync(cd): Error: fs-sis: Couldn't read hash file /var/spool/imap/attachments/0f/0b/hashes/0f0b5351e09ebb487660f23c9b617568093b93d1: Broken pipe dsync(cd): Error: fs-sis: Couldn't read hash file /var/spool/imap/attachments/10/f9/hashes/10f9a4ffd14a5c31f9938c9d8a3ce3f2095fab36: Success dsync(cd): Error: fs-sis: Couldn't read hash file /var/spool/imap/attachments/9b/9a/hashes/9b9a449477882dfca86e80157616cadbb21bb3b8: Success dsync(cd): Error: fs-sis: Couldn't read hash file /var/spool/imap/attachments/df/69/hashes/df698a8bda301a7a474ae2b11414c6f532f4461e: Broken pipe
As with the m.3 storage file, all these files had 0 byte size. What is the best way of fixing these up? Delete and be done?
Thanks, Andreas
participants (1)
-
Andreas Thienemann