On Fri, Jul 18, 2008 at 11:57:28AM +0200, Per olof Ljungmark wrote: > and > skiplist: unlock while not locked This is almost certainly a bug. I added this along with a bunch of other skiplist changes to find places where the database interface wasn't being used correctly, because it means bugs of some sort. There's another skiplist bug I've been trying to track down (multiple deletes on the same connection failing), but haven't been able to reproduce it yet. Unfortunately, the cyrus database interface sort of sucks from a consistency perspective, it's dangerous to call any function that needs database access if you have a database transaction open, because the code doesn't know about the transaction and blindy goes ahead and starts a new transaction, which doesn't work. The code now throws an error immediately rather than causing corruption. Much better :) Bron ( ok, so far I've only seen this happen in my own bogus patches, but it's still better to be safe! ) ---- 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