[PATCH v6 00/17] Fix 'notmuch new' atomicity issues

Austin Clements amdragon at mit.edu
Fri Jul 8 11:09:16 PDT 2011


Rebased against current master and now atomic-new-v7 on
  http://awakening.csail.mit.edu/git/notmuch.git
There were a handful of conflicts, but nothing substantive.

On Wed, Jun 22, 2011 at 3:39 PM, Austin Clements <amdragon at mit.edu> wrote:
> Ping.
>
> On Sat, Jun 11, 2011 at 4:04 PM, Austin Clements <amdragon at mit.edu> wrote:
>> Here's the reworked patch series that uses atomic sections more
>> heavily rather than changing the removal API.  This is atomic-new-v6
>> on http://awakening.csail.mit.edu/git/notmuch.git .
>>
>> (I was planning to make this series on Monday while stuck on a plane,
>> but an opportunity presented itself when I needed something better to
>> do than fix the sink.  As a result, if you can look over this before
>> Monday, I can use that time to address any further comments.)
>>
>> The beginning of the sequence---"test: Fix message when skipping
>> test_expect_equal* tests" through "new: Defer updating directory
>> mtimes until the end."---has not changed besides than the minor things
>> you pointed out earlier.  Here's a quick summary of the differences in
>> the rest of the sequence:
>>
>> lib: Add notmuch_database_{begin,end}_atomic.
>>  Rebased but otherwise identical.
>>
>> lib: Add support for nested atomic sections.
>>  New.
>>
>> lib: Indicate if there are more filenames after removal.
>>  Rebased but otherwise identical.
>>
>> lib: Remove message document directly after removing the last file
>> name.
>>  New.  Supersedes the patches that rewrote
>>  notmuch_database_remove_message and made sync delete messages.
>>
>> lib: Add an API to find a message by filename.
>>  Culled from "lib: Add API's to find by filename and ..." in the old
>>  series.  What I kept is identical.
>>
>> lib: Wrap notmuch_database_add_message in an atomic section.
>>  New.
>>
>> new: Cleanup. Put removed/renamed message count in add_files_state_t.
>> new: Cleanup. De-duplicate file name removal code.
>>  Both new, but closely related to previous remove_filename patch.
>>
>> new: Synchronize maildir flags eagerly.
>>  New, but very closely related to previous patch of the same name.
>>  This patch is simpler now because of the previous two cleanups.
>>
>> new: Wrap adding and removing messages in atomic sections.
>>  Rebased and added an atomic section around removal.
>>
>> lib: Improve notmuch_database_{add,remove}_message documentation.
>>  New.
>>
>> Ultimately, I still think the existing removal API is weird because it
>> forces you to do things like lookup a message by file name just in
>> case you need that message object after removal tells you that it
>> didn't actually remove the message.  But I don't know what to do about
>> it that isn't equally weird.
>>
>> _______________________________________________
>> notmuch mailing list
>> notmuch at notmuchmail.org
>> http://notmuchmail.org/mailman/listinfo/notmuch
>>
>


More information about the notmuch mailing list