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/info-cyrus/attachments/20080911/4aa17df8/attachment-0001.bin 


More information about the Info-cyrus mailing list