Problem with skiplist

DEMBKOWSKI, Henryk (Henryk) hdembkowski at alcatel-lucent.com
Thu Sep 11 09:48:25 EDT 2008


Bron,

Thank you for help.

Do you think that we should also change linux kernel to  2.6.19.2 or
higher?
As Thomas Jarosch suggested. Or new version of skip list will be enough?

Kind Regards,
Henryk



-----Original Message-----
From: Bron Gondwana [mailto:brong at fastmail.fm] 
Sent: Thursday, September 11, 2008 3:02 PM
To: DEMBKOWSKI, Henryk (Henryk)
Cc: info-cyrus at lists.andrew.cmu.edu; cyrus-devel at lists.andrew.cmu.edu;
ZAKRZEWSKI, Marcin (Marcin); ILNICKI, Waldek (Waldek)
Subject: Re: Problem with skiplist

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 )


More information about the Cyrus-devel mailing list