{"action":"created","issue":{"url":"https://api.github.com/repos/jeremyevans/sequel/issues/1083","labels_url":"https://api.github.com/repos/jeremyevans/sequel/issues/1083/labels{/name}","comments_url":"https://api.github.com/repos/jeremyevans/sequel/issues/1083/comments","events_url":"https://api.github.com/repos/jeremyevans/sequel/issues/1083/events","html_url":"https://github.com/jeremyevans/sequel/pull/1083","id":108877223,"number":1083,"title":"Transaction Synchronization on MRI","user":{"login":"YorickPeterse","id":86065,"avatar_url":"https://avatars.githubusercontent.com/u/86065?v=3","gravatar_id":"","url":"https://api.github.com/users/YorickPeterse","html_url":"https://github.com/YorickPeterse","followers_url":"https://api.github.com/users/YorickPeterse/followers","following_url":"https://api.github.com/users/YorickPeterse/following{/other_user}","gists_url":"https://api.github.com/users/YorickPeterse/gists{/gist_id}","starred_url":"https://api.github.com/users/YorickPeterse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YorickPeterse/subscriptions","organizations_url":"https://api.github.com/users/YorickPeterse/orgs","repos_url":"https://api.github.com/users/YorickPeterse/repos","events_url":"https://api.github.com/users/YorickPeterse/events{/privacy}","received_events_url":"https://api.github.com/users/YorickPeterse/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-29T14:07:07Z","updated_at":"2015-09-29T14:09:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jeremyevans/sequel/pulls/1083","html_url":"https://github.com/jeremyevans/sequel/pull/1083","diff_url":"https://github.com/jeremyevans/sequel/pull/1083.diff","patch_url":"https://github.com/jeremyevans/sequel/pull/1083.patch"},"body":"This PR fixes two things:\r\n\r\n1. Synchronization on MRI when calling `Sequel.synchronize`\r\n2. Synchronization of transaction options, without the need for global locks\r\n\r\nBoth commits explain the problem and rationale pretty well, so see those for more information. If anything has to be changed styling wise, just say the word."},"comment":{"url":"https://api.github.com/repos/jeremyevans/sequel/issues/comments/144072098","html_url":"https://github.com/jeremyevans/sequel/pull/1083#issuecomment-144072098","issue_url":"https://api.github.com/repos/jeremyevans/sequel/issues/1083","id":144072098,"user":{"login":"YorickPeterse","id":86065,"avatar_url":"https://avatars.githubusercontent.com/u/86065?v=3","gravatar_id":"","url":"https://api.github.com/users/YorickPeterse","html_url":"https://github.com/YorickPeterse","followers_url":"https://api.github.com/users/YorickPeterse/followers","following_url":"https://api.github.com/users/YorickPeterse/following{/other_user}","gists_url":"https://api.github.com/users/YorickPeterse/gists{/gist_id}","starred_url":"https://api.github.com/users/YorickPeterse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/YorickPeterse/subscriptions","organizations_url":"https://api.github.com/users/YorickPeterse/orgs","repos_url":"https://api.github.com/users/YorickPeterse/repos","events_url":"https://api.github.com/users/YorickPeterse/events{/privacy}","received_events_url":"https://api.github.com/users/YorickPeterse/received_events","type":"User","site_admin":false},"created_at":"2015-09-29T14:09:15Z","updated_at":"2015-09-29T14:09:15Z","body":"There are probably more cases where at least the global lock (via `Sequel.synchronize`) isn't needed, or perhaps other places where synchronization isn't entirely done properly. Either way, this PR only focuses on transaction handling as the code in question has been throwing a bunch of errors (and possibly segmentation faults) in production."}}