problem with cyr_expire
Bron Gondwana
brong at fastmail.fm
Mon Sep 3 05:34:38 EDT 2007
On Mon, 03 Sep 2007 10:17:47 +0200, "Rudy Gevaert" <Rudy.Gevaert at UGent.be> said:
> Hello,
>
> I noticed that I'm having a problem with cyr_expire. I previously set
> an expire annotation on a mailbox. (Some months ago.)
>
> I have now seen that cyr_expire goes upto that mailbox and then errors:
>
> Sep 2 04:40:07 himalaya mail1/cyr_expire[10145]: IOERROR:
> ugent.be!user.rudy^gevaert.Spam zero index/expunge record 8/1183861181
>
> Than it stops:
>
> Sep 2 04:40:07 himalaya mail1/cyr_expire[10145]: expunged 6592 out of
> 360264 messages from 70323 mailboxes
> Sep 2 04:40:07 himalaya mail1/cyr_expire[10145]: duplicate_prune:
> pruning back 6 days
> Sep 2 04:40:21 himalaya mail1/cyr_expire[10145]: duplicate_prune:
> purged 6307 out of 98826 entries
>
> I'm using 2.3.7. I know of a the bug that cyr_expire stops when he
> reaches an error. But I'm wondering that the error is. How can I fix
> the mailbox?
>
> I looked trough the source and I think I found the relevant lines of
> code in mailbox.c:
>
> /* 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;
Ok - buf is a copy of a single index record. OFFSET_UID is actually 0,
since the UID is the first field in an index record.
It looks like you have a pretty corrupted index file, since:
1183861181 looks more like a timestamp than an "exists" count!
I think you need to reconstruct the folder.
--
Bron Gondwana
brong at fastmail.fm
More information about the Info-cyrus
mailing list