diff options
author | 2016-03-01 12:47:07 -0400 | |
---|---|---|
committer | 2016-03-01 12:51:54 -0400 | |
commit | 77d59dd82957f92b017e1010db109069c6095ada (patch) | |
tree | 2773827301bc75fdcd325a40f1a89effd5c72e11 /doc/bugs/thread_blocked_indefinitely_in_an_STM_transaction__while_moving_within__a_local_clone | |
parent | abf80814ab1b722d1c1c0c15d8a79bdd3eb56aec (diff) |
Fix bug preventing moving files to/from a repository with annex.pidlock set.
Diffstat (limited to 'doc/bugs/thread_blocked_indefinitely_in_an_STM_transaction__while_moving_within__a_local_clone')
-rw-r--r-- | doc/bugs/thread_blocked_indefinitely_in_an_STM_transaction__while_moving_within__a_local_clone/comment_3_7e6b3ab0beaca49d7d68c9e610c1d147._comment | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/doc/bugs/thread_blocked_indefinitely_in_an_STM_transaction__while_moving_within__a_local_clone/comment_3_7e6b3ab0beaca49d7d68c9e610c1d147._comment b/doc/bugs/thread_blocked_indefinitely_in_an_STM_transaction__while_moving_within__a_local_clone/comment_3_7e6b3ab0beaca49d7d68c9e610c1d147._comment new file mode 100644 index 000000000..becf5a1b3 --- /dev/null +++ b/doc/bugs/thread_blocked_indefinitely_in_an_STM_transaction__while_moving_within__a_local_clone/comment_3_7e6b3ab0beaca49d7d68c9e610c1d147._comment @@ -0,0 +1,17 @@ +[[!comment format=mdwn + username="joey" + subject="""comment 3""" + date="2016-03-01T16:21:31Z" + content=""" +Analysis: What's crashing is Utility.LockPool.PidLock.waitLock after a call +to Utility.LockPool.PidLock.tryLock. The former takes an exclusive STM lock +of the pid lock file; the latter takes a shared STM lock. + +Since the pid lock stands in for multiple more fine-grained locks, waitLock +will be called while a lock from tryLock (or a previous waitLock perhaps) +is still open. + +The fix seems as simple as making waitLock take a shared STM lock of the +pid lock file, leaving the exclusive lock for the later, more fine-grained +STM lock checking that's done after taking the pid lock. +"""]] |