On Mon, 03 Sep 2007 10:17:47 +0200, "Rudy Gevaert" <Rudy.Gevaert@xxxxxxxx> 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@xxxxxxxxxxx ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html