Patch to avoid mailboxesdb corruption on concurrent renames

Bron Gondwana brong at fastmail.fm
Fri Apr 4 01:53:40 EDT 2008


I've put a header on the patch describing the bug.  Basically,
the result code from mailbox_open_locked() wasn't being tested
sufficiently, and hence the new mailbox name would be created
in mailboxes.db even though the files were no longer available
to be copied - causing sync bailouts and IOERRORs and all sorts
of fun.

What causes this?  Clients that send a RENAME or DELETE event
and then you do something else in the GUI and they open a
_separate_ connection which tries to do something else to the
source folder.

I think it is our only remaining source of bailouts!  It
requires a reconstruct to fix when it happens.

Patch attached, and the perl script I used to confirm that it
existed and confirm that this patch fixed it.

Regards,

Bron ( P.S. isn't it about time for a 2.3.12?  I'm getting sick
       of posting skiplist patches to people running the
       lastest and having issues! )
-------------- next part --------------
A non-text attachment was scrubbed...
Name: multirename.pl
Type: text/x-perl
Size: 2020 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20080404/885d0e39/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cyrus-renamesafety-2.3.11.diff
Type: text/x-diff
Size: 1760 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/cyrus-devel/attachments/20080404/885d0e39/attachment-0001.bin 


More information about the Cyrus-devel mailing list