{"action":"created","issue":{"url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php/issues/189","repository_url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php","labels_url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php/issues/189/labels{/name}","comments_url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php/issues/189/comments","events_url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php/issues/189/events","html_url":"https://github.com/bigcommerce/bigcommerce-api-php/pull/189","id":192190703,"number":189,"title":"Updated connection.php with Jasper Studios fixes to resolve deadlocking","user":{"login":"bc-AlyssNoland","id":9373485,"avatar_url":"https://avatars.githubusercontent.com/u/9373485?v=3","gravatar_id":"","url":"https://api.github.com/users/bc-AlyssNoland","html_url":"https://github.com/bc-AlyssNoland","followers_url":"https://api.github.com/users/bc-AlyssNoland/followers","following_url":"https://api.github.com/users/bc-AlyssNoland/following{/other_user}","gists_url":"https://api.github.com/users/bc-AlyssNoland/gists{/gist_id}","starred_url":"https://api.github.com/users/bc-AlyssNoland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bc-AlyssNoland/subscriptions","organizations_url":"https://api.github.com/users/bc-AlyssNoland/orgs","repos_url":"https://api.github.com/users/bc-AlyssNoland/repos","events_url":"https://api.github.com/users/bc-AlyssNoland/events{/privacy}","received_events_url":"https://api.github.com/users/bc-AlyssNoland/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-11-29T05:22:13Z","updated_at":"2016-11-29T06:23:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php/pulls/189","html_url":"https://github.com/bigcommerce/bigcommerce-api-php/pull/189","diff_url":"https://github.com/bigcommerce/bigcommerce-api-php/pull/189.diff","patch_url":"https://github.com/bigcommerce/bigcommerce-api-php/pull/189.patch"},"body":"http://www.jasperstudios.com/bigcommerce-api-code-patch/\r\n\r\n> Namely, the biggest issue was that the official version did not properly handle the private CURL member object.  The CURL object referenced inside the big-commerce.php class is being reused in the POST, PUT, DELETE, and GET methods, and, after the use of each method the CURL member object simply was not being reset correctly.  More specifically, before it re-uses the CURL object for another call under the same initialization settings, it needed to reset old state flags.\r\n> \r\n> Another issue we discovered was that API calls to the class involving the underlying PUT request was not properly closing a temporary file that had been opened just a few lines earlier.\r\n> \r\n> The consequences of these bugs when attempting to make concurrent and chained requests inside the class when reusing the object were:\r\n> \r\n> Deadlocks: the code would simply hang and block the PHP thread, shutting down our engine.\r\n> Sporadic ‘Content Not Found’ Errors:  which seemingly happened randomly from time to time.\r\n> The ‘sporadic’ errors weren’t so unpredictable after all, they resulted from a very specific series of call sequences to each HTTP type.  For example, a deadlock was ALWAYS reproduce-able when calling a POST method immediately after a PUT method.  If you didn’t call the code in exactly that order using the same static Bigcommerce instance you’d never observe this bug."},"comment":{"url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php/issues/comments/263487196","html_url":"https://github.com/bigcommerce/bigcommerce-api-php/pull/189#issuecomment-263487196","issue_url":"https://api.github.com/repos/bigcommerce/bigcommerce-api-php/issues/189","id":263487196,"user":{"login":"philipmuir","id":1874734,"avatar_url":"https://avatars.githubusercontent.com/u/1874734?v=3","gravatar_id":"","url":"https://api.github.com/users/philipmuir","html_url":"https://github.com/philipmuir","followers_url":"https://api.github.com/users/philipmuir/followers","following_url":"https://api.github.com/users/philipmuir/following{/other_user}","gists_url":"https://api.github.com/users/philipmuir/gists{/gist_id}","starred_url":"https://api.github.com/users/philipmuir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/philipmuir/subscriptions","organizations_url":"https://api.github.com/users/philipmuir/orgs","repos_url":"https://api.github.com/users/philipmuir/repos","events_url":"https://api.github.com/users/philipmuir/events{/privacy}","received_events_url":"https://api.github.com/users/philipmuir/received_events","type":"User","site_admin":false},"created_at":"2016-11-29T06:23:51Z","updated_at":"2016-11-29T06:23:51Z","body":"👍 "}}
{"actor":{"display_login":"philipmuir"}}