{"action":"created","issue":{"url":"https://api.github.com/repos/clementfarabet/async/issues/19","labels_url":"https://api.github.com/repos/clementfarabet/async/issues/19/labels{/name}","comments_url":"https://api.github.com/repos/clementfarabet/async/issues/19/comments","events_url":"https://api.github.com/repos/clementfarabet/async/issues/19/events","html_url":"https://github.com/clementfarabet/async/pull/19","id":106848893,"number":19,"title":"fix http body containing previous requests bodies","user":{"login":"fumin","id":765222,"avatar_url":"https://avatars.githubusercontent.com/u/765222?v=3","gravatar_id":"","url":"https://api.github.com/users/fumin","html_url":"https://github.com/fumin","followers_url":"https://api.github.com/users/fumin/followers","following_url":"https://api.github.com/users/fumin/following{/other_user}","gists_url":"https://api.github.com/users/fumin/gists{/gist_id}","starred_url":"https://api.github.com/users/fumin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fumin/subscriptions","organizations_url":"https://api.github.com/users/fumin/orgs","repos_url":"https://api.github.com/users/fumin/repos","events_url":"https://api.github.com/users/fumin/events{/privacy}","received_events_url":"https://api.github.com/users/fumin/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-09-16T19:44:22Z","updated_at":"2015-09-28T12:50:45Z","closed_at":"2015-09-28T12:50:45Z","pull_request":{"url":"https://api.github.com/repos/clementfarabet/async/pulls/19","html_url":"https://github.com/clementfarabet/async/pull/19","diff_url":"https://github.com/clementfarabet/async/pull/19.diff","patch_url":"https://github.com/clementfarabet/async/pull/19.patch"},"body":"This change allows async to used in production by fixing the bug where the bodies of all previous requests are prepended to the current request. This faulty behaviour results in two serious issues:\r\n\r\n* In the case of multipart/form-data bodies, previous requests' bodies containing different form-data boundaries would be present in the current request body, resulting in bogus multipart headers and bodies due to erroneous data sent to the parser.\r\n* This faulty behaviour of async is essentially a memory leak. To the least it requires users to put superfluous `collectgarbage()` calls in the HTTP handlers, and to the worst it demands users to restart the server every now and then."},"comment":{"url":"https://api.github.com/repos/clementfarabet/async/issues/comments/143735313","html_url":"https://github.com/clementfarabet/async/pull/19#issuecomment-143735313","issue_url":"https://api.github.com/repos/clementfarabet/async/issues/19","id":143735313,"user":{"login":"fumin","id":765222,"avatar_url":"https://avatars.githubusercontent.com/u/765222?v=3","gravatar_id":"","url":"https://api.github.com/users/fumin","html_url":"https://github.com/fumin","followers_url":"https://api.github.com/users/fumin/followers","following_url":"https://api.github.com/users/fumin/following{/other_user}","gists_url":"https://api.github.com/users/fumin/gists{/gist_id}","starred_url":"https://api.github.com/users/fumin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fumin/subscriptions","organizations_url":"https://api.github.com/users/fumin/orgs","repos_url":"https://api.github.com/users/fumin/repos","events_url":"https://api.github.com/users/fumin/events{/privacy}","received_events_url":"https://api.github.com/users/fumin/received_events","type":"User","site_admin":false},"created_at":"2015-09-28T12:50:45Z","updated_at":"2015-09-28T12:50:45Z","body":"Hi @clementfarabet , thanks, the patch you mentioned you looks good, closing this PR."}}