> > I've had a couple of my users' seen DBs, which are skiplist, go south > recently. Since ctl_cyrusdb in 2.2.12 doesn't actually check the seen > databases, I looked around for a recovery utility, but found none. I > tried to use cvt_cyrusdb to convert them from skiplist to skiplist and > skiplist to text, but I got errors every time. I moved the defective > DBs so they could be re-recreated (at least one person was unable to > actually re-mark them messages read). From running 'strings' on the bad > DBs and comparing a flat-file dump of a good DB, it looks like all or at > least most of the data is there--enough that it would be less annoying > than having all messages marked unread. So before I dig into this > myself, has anyone tried to write a utility that recovers, brutally if > necessary, skiplist databases?
I didn't write such a tool but I can confirm that a corrupt skiplist db can make your cyrus-imapd and ctl_cyrusdb die with SIG11. So in that situation it would really be helpful to have a tool to recover at least most of the data. However, I was thinking to add some new funtionality into my rpms which dump clear text backups of all cyrus databases daily similar to what is already done with the mboxlist. Those backups could also be very helpful when migrating a server to a new box with for example different BDB versions. I'm still waiting for more good ideas (and more time) to implement all this in the best possible way. Simon --- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html