Problem with skiplist
Bron Gondwana
brong at fastmail.fm
Thu Sep 11 09:02:29 EDT 2008
On Thu, Sep 11, 2008 at 12:30:04PM +0200, DEMBKOWSKI, Henryk (Henryk) wrote:
> Hi,
>
> We are using skiplist for our annotations.db. And we have big problems
> with it.
>
> We are using tool validate-skiplist
> (http://kolab.org/cgi-bin/viewcvs-kolab.cgi/utils/admin/)
> to check if annotations.db is fine. Some time ago we got the following
> error:
>
> validate-skiplist: Bad node: expected ADD or DELETE at 0x001CFDB4!
> (found0x78742F70)
>
> Unfortunately we don't know exact scenario which could cause this
> problem. We just
> run validate-skiplist in cron (every one hour) and from time to time we
> see such error.
>
> So we found patches to fix some issues (our problems are the same as
> described at
> http://www.intevation.de/roundup/kolab/issue840) - source can be found
> here
>
> http://permalink.gmane.org/gmane.mail.imap.cyrus/28033
>
> However it doesn't help. We still have error
>
> validate-skiplist: Bad node: expected ADD or DELETE at 0x002A855C!
> (found 0x38373033)
>
>
> We noticed that this error/problem is self repaired. I mean after few
> hours everything is fine.
> For example, we had errors
>
> validate-skiplist -v annotations.db
> Skiplist file Version 1.2
> Max level: 20
> Current level: 17
> 26549 active items
> Log start at 0x002A855C
> Last recovery on Tue Aug 26 22:18:33 2008
>
> Checking log part...
> validate-skiplist: Bad node: expected ADD or DELETE at 0x002A855C!
> (found 0x38373033)
>
>
> But after few hours
>
>
> validate-skiplist -v annotations.db
> Skiplist file Version 1.2
> Max level: 20
> Current level: 17
> 34415 active items
> Log start at 0x003C9ED8
> Last recovery on Wed Sep 10 01:10:40 2008
>
> Checking log part...
> Found 3830 ADD, 5336 DELETE and 5431 COMMIT nodes in log.
>
> It has been repaired without any actions from our side. Interesting
> thing is
> that "Last recovery" has been changed. Do you know what is it? Who
> changed it?
> Why it is done? When it is done? "Last recovery" suggest that something
> recovered annotations.db.
You really, really want a new version of cyrusdb_skiplist.c! I
recommend the attached one. It's 2.3.12 plus the patches that will
go into 2.3.13.
Bron ( there won't be any compatibility issues, just drop it in your
cyrus-imapd-2.3.12/lib/ directory and rebuild )
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cyrusdb_skiplist.c
Type: text/x-csrc
Size: 60380 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20080911/4aa17df8/attachment-0001.bin
More information about the Cyrus-devel
mailing list