[Cyrus-CVS] src/cyrus/lib by murch

Bron Gondwana brong at fastmail.fm
Mon Nov 26 22:21:56 EST 2007


On Mon, Nov 26, 2007 at 06:26:38PM -0500, murch at andrew.cmu.edu wrote:
> Update of /afs/andrew/system/cvs/src/cyrus/lib
> In directory unix35.andrew.cmu.edu:/var/tmp/cvs-serv8181
> 
> Modified Files:
> 	cyrusdb_skiplist.c 
> Log Message:
> Yet more skiplist fixes from Fastmail.fm

Don't worry, I've got some more patches for you!

cyrus-skiplist-transactions-2.3.10.diff

  It's pretty well documented in the diff header.  Basically, if a
  transaction was open on a database and you made a read-only query
  without a transaction on it (actually, any other query without
  passing the _SAME_ transaction object) it would screw up royally.

  Not to mention that passing a transaction at all after it had been
  used in a commit or abort would have made a mess.

  This adds some serious sanity checks.  One thing to be aware of,
  it spits a fair bit of syslog traffic about double-opening of
  username.seen files.  I consider that an un-fixed bug, there should
  be no need to have two separate filehandles open to them, and it's
  a recipe for later disaster if you're half way through an operation
  and do something with the other handle, as it won't respect locking
  thanks to being inside the same process.

  That said, you might want to turn the syslog warning down or off,
  I'm not too concerned either way.

cyrus-skiplist-transactionuse-2.3.10.diff

  So far just a single totally bogus use of transactions within
  seen_merge.  I chose to just go with no transaction for the
  foreach part, but it would be trivial to use a different
  transaction object instead if you wanted to avoid all the read
  locks and unlocking.
  
  Whatever - what's there now is bogus.


Even if you don't take the first patch as-is, you should certainly
apply the second patch before the next release :)

Bron ( back on the patch wagon! )


More information about the Cyrus-devel mailing list