*IMPORTANT* - bugfix sync_append_commit index breakage
Bron Gondwana
brong at fastmail.fm
Fri Aug 31 10:39:59 EDT 2007
We've had issues with broken indexes on the old master after a failover,
and puzzled for ages over the cause. This is the reason behind the
SIGQUIT patch which would mitigate this by reducing the "unfinished
business" on a standard shutdown.
But still, the symptoms were weird.
I'm pretty sure I've figured out the cause, and the attached patch
(compile tested only) fixes it... unfortunately it's a race condition
so it's hard to test.
Ken - it would be great if you can check this today and push it to CVS
if you agree with me. It's a nasty one - especially since the symptoms
are offset index records right until something that's not a sync_server
append comes along and writes to the correct place in the index file
again.
On a more structural note - it would be great to re-factor the lower
level APIs (mailbox.c, mboxlist.c, etc) to provide everything that
sync_server needs manipulate their data structures and remove all the
low level fiddling copy-and-pasted stuff from the sync layer. This
comes back a bit to David's comments today about the difficulty of
having patches flying around - I suspect he copied and pasted so he
wasn't throwing tentacles deep through the main codebase - but the
end result is more brittle software and poor abstraction. We need
to avoid doing that if there's a bunch of us all hacking in our own
little patch space!
Bron.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cyrus-sync-append-bugfix-2.3.9.diff
Type: text/x-diff
Size: 1575 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20070901/10b6e25c/attachment.bin
More information about the Cyrus-devel
mailing list