IOERROR: zero index/expunge record

Bron Gondwana brong at
Wed Aug 3 16:37:21 EDT 2011

On Wed, 03 Aug 2011 22:14:23 +0200, Marc Muehlfeld  
<Marc.Muehlfeld at> wrote:

> Am 03.08.2011 21:34, schrieb Bron Gondwana:
>> Also check out your locking.  If this is 2.4.x, make sure you don't have
>> anything cleaning up the 'mboxname_lockpath' directory.
> Is there anything I can check ybout locking in 2.3.16?

Oh - great, 2.3.16.  Hang on a second while I unrecycle some
memories and check out the code.

And let's have copies of your imapd.conf and cyrus.conf while
we're at it.  Feel free to check imapd.conf for passwords and
strip them first, there are a couple of replication and murder
configurations which store files in imapd.conf.

>> What version are you running?
> 2.3.16 that was shipped with Scientific Linux 6 (RHEL 6).

> -------/* Sanity check */
> -------if (*((bit32 *)(buf+OFFSET_UID)) == 0) {
> -------    syslog(LOG_ERR, "IOERROR: %s zero index/expunge record  
> %u/%lu",
> ------->-------   mailbox->name, msgno, exists);
> -------    return IMAP_IOERROR;
> -------}

I thought that looked familiar.  That would be me who wrote that
line I think.  Unfortunately git blame isn't much help due to the
way branches from CVS got moved over.  I'm pretty sure I remember
dealing with this.

So you have corrupted cyrus.index files.  I don't suppose you kept any
of them?

Do you have delayed expunge?

I really can't remember now exactly what cause this - but there some
pattern of accesses and expunges that could trigger it.  I just
can't remember what it was now.  I know I used to clean up from them
occasionally back before 2.4 was done.  It was probably to do with
aborted appends.  Gah.  Something horrible about locking being

Certainly if you repack a mailbox that has cyrus.index and cyrus.expire
files that have the same UID in them, then you're going to be rather
screwed.  I know we had that happen sometimes, but I don't remember why
now.  I'm sorry.

I do recommend upgrading to 2.4.10, despite the initial IO hit of the
upgrade.  The repack on expunge in 2.3.x was really, really complex
and buggy.


Using Opera's revolutionary email client:

More information about the Info-cyrus mailing list