{"action":"created","issue":{"url":"https://api.github.com/repos/enversion/enversion/issues/39","labels_url":"https://api.github.com/repos/enversion/enversion/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/enversion/enversion/issues/39/comments","events_url":"https://api.github.com/repos/enversion/enversion/issues/39/events","html_url":"https://github.com/enversion/enversion/issues/39","id":74446803,"number":39,"title":"Race condition in commit hooks.","user":{"login":"tpn","id":629986,"avatar_url":"https://avatars.githubusercontent.com/u/629986?v=3","gravatar_id":"","url":"https://api.github.com/users/tpn","html_url":"https://github.com/tpn","followers_url":"https://api.github.com/users/tpn/followers","following_url":"https://api.github.com/users/tpn/following{/other_user}","gists_url":"https://api.github.com/users/tpn/gists{/gist_id}","starred_url":"https://api.github.com/users/tpn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpn/subscriptions","organizations_url":"https://api.github.com/users/tpn/orgs","repos_url":"https://api.github.com/users/tpn/repos","events_url":"https://api.github.com/users/tpn/events{/privacy}","received_events_url":"https://api.github.com/users/tpn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"tpn","id":629986,"avatar_url":"https://avatars.githubusercontent.com/u/629986?v=3","gravatar_id":"","url":"https://api.github.com/users/tpn","html_url":"https://github.com/tpn","followers_url":"https://api.github.com/users/tpn/followers","following_url":"https://api.github.com/users/tpn/following{/other_user}","gists_url":"https://api.github.com/users/tpn/gists{/gist_id}","starred_url":"https://api.github.com/users/tpn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpn/subscriptions","organizations_url":"https://api.github.com/users/tpn/orgs","repos_url":"https://api.github.com/users/tpn/repos","events_url":"https://api.github.com/users/tpn/events{/privacy}","received_events_url":"https://api.github.com/users/tpn/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2015-05-08T18:10:19Z","updated_at":"2015-05-13T13:49:54Z","closed_at":null,"body":"There appears to be a race condition within the Enversion framework that is triggered when multiple commits are received within short succession.  Specifically, the situation appears to occur when, whilst the pre-commit transaction processing of a commit is taking place, another commit appears and kicks off a second pre-commit transaction processing.\r\n\r\nSubversion handles this behind the scenes (presuming both commits aren't altering the same file or tree), however, Enversion doesn't appear to handle the logic correctly, resulting in the \"repository out of sync\" error and preventing further commits from being made."},"comment":{"url":"https://api.github.com/repos/enversion/enversion/issues/comments/101669576","html_url":"https://github.com/enversion/enversion/issues/39#issuecomment-101669576","issue_url":"https://api.github.com/repos/enversion/enversion/issues/39","id":101669576,"user":{"login":"tpn","id":629986,"avatar_url":"https://avatars.githubusercontent.com/u/629986?v=3","gravatar_id":"","url":"https://api.github.com/users/tpn","html_url":"https://github.com/tpn","followers_url":"https://api.github.com/users/tpn/followers","following_url":"https://api.github.com/users/tpn/following{/other_user}","gists_url":"https://api.github.com/users/tpn/gists{/gist_id}","starred_url":"https://api.github.com/users/tpn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpn/subscriptions","organizations_url":"https://api.github.com/users/tpn/orgs","repos_url":"https://api.github.com/users/tpn/repos","events_url":"https://api.github.com/users/tpn/events{/privacy}","received_events_url":"https://api.github.com/users/tpn/received_events","type":"User","site_admin":false},"created_at":"2015-05-13T13:49:54Z","updated_at":"2015-05-13T13:49:54Z","body":"The fix will need to introduce a wait state to address step 5 above.  The post-commit hook needs to wait until evn:last_rev matches base rev before proceeding with processing.  This should be sufficient to address multiple incoming commits against the same base revision."}}