Re: How to repair a broken seen state file
On Mon, Jul 07, 2008 at 03:37:56PM +0200, Konrad Mauz wrote: On Mon, Jul 07, 2008 at 08:31:59AM -0500, 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 It's always for this one file. All the others are fine. It's a skiplist database. The ownership is correct. A reconstruct on the mailbox has no effect on the file. Can I just remove the file, with no ill effects? Can I fix it somehow? We're running cyrus-imapd-2.3.8. perheps the skiplist.py tool from http://oss.netfarm.it/python-cyrus.php can help you to restore the corrupted seen file. Yes, that worked! skiplist.py extracted the data to a text file. Then cvt_cyrusdb converted from flat to skiplist again. There are no more errors in the log. -- -Gary Mills--Unix Support--U of M Academic Computing and Networking- 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
Re: How to repair a broken seen state file
On Mon, Jul 07, 2008 at 08:31:59AM -0500, 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 It's always for this one file. All the others are fine. It's a skiplist database. The ownership is correct. A reconstruct on the mailbox has no effect on the file. Can I just remove the file, with no ill effects? Can I fix it somehow? We're running cyrus-imapd-2.3.8. -- -Gary Mills--Unix Support--U of M Academic Computing and Networking- 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 Hi Gary, perheps the skiplist.py tool from http://oss.netfarm.it/python-cyrus.php can help you to restore the corrupted seen file. Regards, Konrad -- Konrad Mauz Rechenzentrum Hochschule Technik, Wirtschaft und Gestaltung Braunegger-Strasse 55, D 78462 Konstanz e-mail: [EMAIL PROTECTED] Tel.: +49 7531 206-472 Fax.: +49 7531 206-153 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
Re: How to repair a broken seen state file
--On 7. Juli 2008 08:31:59 -0500 Gary Mills [EMAIL PROTECTED] 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 It's always for this one file. All the others are fine. It's a skiplist database. The ownership is correct. A reconstruct on the mailbox has no effect on the file. That's to be expected. Can I just remove the file, with no ill effects? Yes, but of course all seen information is lost in that case. Can I fix it somehow? Simon Matter has posted a script to the list: http://lists.andrew.cmu.edu/pipermail/info-cyrus/2006-April/021522.html I've never used it. -- .:.Sebastian Hagedorn - RZKR-R1 (Gebäude 52), Zimmer 18.:. Zentrum für angewandte Informatik - Universitätsweiter Service RRZK .:.Universität zu Köln / Cologne University - ✆ +49-221-478-5587.:. .:.:.:.Skype: shagedorn.:.:.:. pgpMgAyEhBAln.pgp Description: PGP signature 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
Re: How to repair a broken seen state file
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 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
Re: How to repair a broken seen state file
On Mon, Jul 07, 2008 at 10:26:33AM -0400, Wesley Craig wrote: 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. I neglected to mention that I'd already tried that... # dd if=inqarts.seen of=inqarts.seen.new bs=1 count=1420 1420+0 records in 1420+0 records out # chmod 600 inqarts.seen.new # mv inqarts.seen inqarts.seen.old mv inqarts.seen.new inqarts.seen # ll -t inqarts.* -rw--- 1 cyrusmail1420 Mar 28 14:11 inqarts.seen -rw--- 1 cyrusmail 10052 Mar 28 11:37 inqarts.seen.old -rw--- 1 cyrusmail 320 Feb 21 10:53 inqarts.sub It still logged the same error afterwards. I guess I'll have to try something more drastic now. -- -Gary Mills--Unix Support--U of M Academic Computing and Networking- 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