Looks like you've got corrupted skiplist files. Delete the seen state
databases with the problem and it will automatically rebuild them.

It's scarier when you see this on the mailboxes DB.

Which reminds me. The skiplist recovery code barfs if it comes across this
error and gives up. However, if you truncate the length of the file to just
smaller than the problem location, then it happily recovers, even though
there's an incomplete record. I really don't think recovery should ever just
'give up'. Maybe make a backup of the bad DB, remove the offending records,
warn the user and continue would be much nicer.

Also there's a bit of code that looks like this:
        for (;;) {
            p += RECSIZE(p);
            if (p >= q) break;
            if (TYPE(p) == COMMIT) break;
        }

I had a corrupted DB once where RESIZE(p) == 0. This just went into an
infinite loop. Also not a good idea when trying to recover a database.

Rob

----- Original Message -----
From: "Alessandro Oliveira" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 11, 2002 11:46 PM
Subject: DBERROR: skiplist recovery errors


> Hi,
>
> I'm getting the following errors in my logs:
>
> ....
> Dec  9 09:12:35 intra03 imapd[30212]: DBERROR: skiplist recovery: 0958
> should be ADD or DELETE
> Dec  9 09:12:35 intra03 imapd[30212]: DBERROR: opening
> /var/lib/imap/user/n/natacha.seen: cyrusdb error
> Dec  9 09:12:35 intra03 imapd[30212]: Could not open seen state for
> natacha (System I/O error)
> ....
> Dec 11 10:40:56 intra03 imapd[15239]: DBERROR: skiplist recovery: 02C4
> should be ADD or DELETE
> Dec 11 10:40:56 intra03 imapd[15239]: DBERROR: opening
> /var/lib/imap/user/m/mariana.seen: cyrusdb error
> Dec 11 10:40:56 intra03 imapd[15239]: Could not open seen state for
> mariana (System I/O error)
> ....
>
> I can't figure it out whats going on here, do you have any clues ?
>
> Thanks in Advance,
>
> Alessandro
>
>
>
>
>
>
>

Reply via email to