How to repair a broken seen state file

Wesley Craig wes at umich.edu
Mon Jul 7 10:26:33 EDT 2008


On 07 Jul 2008, at 09:31, Gary Mills wrote:
> I'm seeing errors like this regularly in our messages log:
>
>   Jul  4 11:43:37 castor imap[16398]: [ID 514311 local6.error]  
> DBERROR: skiplist recovery: 058C should be INORDER
>   Jul  4 11:43:37 castor imap[16398]: [ID 729713 local6.error]  
> DBERROR: opening /imap/conf/user/O/inqarts.seen: cyrusdb error
>
> Can I just remove the file, with no ill effects?

Removing it will cause all seen state to be lost, which is not a huge  
tragedy, but not exactly desirable.

> Can I fix it somehow?

058C is an offset in hex.  If you truncate the file at this point,  
you should be able to proceed.  Obviously, everything after that will  
be gone, but in my experience, these error typically occur at the end  
of skiplist files, so you probably won't lose much if anything.   
Also, this user's mail probably looks quite odd, e.g., all new mail  
is always unseen.  Anyway, something like:

	dd if=/imap/conf/user/O/inqarts.seen of=/imap/conf/user/O/ 
inqarts.seen.fixed bs=1420 count=1
and
	mv /imap/conf/user/O/inqarts.seen.fixed /imap/conf/user/O/inqarts.seen

Make sure /imap/conf/user/O/inqarts.seen is still permitted correctly.

> We're running cyrus-imapd-2.3.8.

I understand that later version of Cyrus have fixed many errors in  
the skiplist code...

:wes


More information about the Info-cyrus mailing list