diff --git a/doc/forum/git-annex_parallel_invocation_and_the_git-annex_branch/comment_4_aec9399cdf7b11011c9b577a6800b490._comment b/doc/forum/git-annex_parallel_invocation_and_the_git-annex_branch/comment_4_aec9399cdf7b11011c9b577a6800b490._comment new file mode 100644 index 0000000000..907f4f806b --- /dev/null +++ b/doc/forum/git-annex_parallel_invocation_and_the_git-annex_branch/comment_4_aec9399cdf7b11011c9b577a6800b490._comment @@ -0,0 +1,7 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 4""" + date="2019-05-06T18:46:21Z" + content=""" +[[todo/only_allow_one_git_queue_to_be_flushed_at_a_time]] +"""]] diff --git a/doc/todo/only_allow_one_git_queue_to_be_flushed_at_a_time.mdwn b/doc/todo/only_allow_one_git_queue_to_be_flushed_at_a_time.mdwn new file mode 100644 index 0000000000..a2cc7eab12 --- /dev/null +++ b/doc/todo/only_allow_one_git_queue_to_be_flushed_at_a_time.mdwn @@ -0,0 +1,11 @@ +A git queue is used when doing things that update .git/index. +If two git-annex processes are both building up a git queue and happen +to flush at the same time, one will fail due to git's locking of the index +file. + +This doesn't affect multiple threads with --jobs; while threads have +individual git queues, inter-thread locking allows only one to flush +at a time. That locking is handled in `Annex.Queue.flush'` using a +semaphore. + +Seems that it would be better to use a lock file. --[[Joey]]