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