cf58a5
From http://article.gmane.org/gmane.mail.imap.cyrus/18840
cf58a5
cf58a5
We have also seen skiplist corruption in seen databases.  I don't have a 
cf58a5
recovery tool, but I have been able to manually recover seen db's to the 
cf58a5
point of corruption so that at least most of the users mails are in the 
cf58a5
correct 'read' state.  Typically, you will see errors like:
cf58a5
cf58a5
DBERROR: skiplist recovery /usr/local/imap/user/k/kdelaney.seen: 0D2C 
cf58a5
should be ADD or DELETE
cf58a5
cf58a5
If you truncate the file at this point, it should fix the problem, and 
cf58a5
the users mail read state will be valid upto the point of corruption. 
cf58a5
To do this, convert the hex to decimal (above would be 1372) and use the 
cf58a5
dd command:
cf58a5
cf58a5
dd if=kdelaney.seen of=kdelaney.seen.fixed bs=1 count=1372
cf58a5
cf58a5
replace the corrupted .seen file with the fixed one and have user log in 
cf58a5
and should be ok.
cf58a5
cf58a5
Seems to work on the couple I have tried it on.