{"action":"created","issue":{"url":"https://api.github.com/repos/python/cpython/issues/6921","repository_url":"https://api.github.com/repos/python/cpython","labels_url":"https://api.github.com/repos/python/cpython/issues/6921/labels{/name}","comments_url":"https://api.github.com/repos/python/cpython/issues/6921/comments","events_url":"https://api.github.com/repos/python/cpython/issues/6921/events","html_url":"https://github.com/python/cpython/pull/6921","id":323793167,"number":6921,"title":"bpo-26819: Prevent proactor double read on resume","user":{"login":"CtrlZvi","id":4283627,"avatar_url":"https://avatars2.githubusercontent.com/u/4283627?v=4","gravatar_id":"","url":"https://api.github.com/users/CtrlZvi","html_url":"https://github.com/CtrlZvi","followers_url":"https://api.github.com/users/CtrlZvi/followers","following_url":"https://api.github.com/users/CtrlZvi/following{/other_user}","gists_url":"https://api.github.com/users/CtrlZvi/gists{/gist_id}","starred_url":"https://api.github.com/users/CtrlZvi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CtrlZvi/subscriptions","organizations_url":"https://api.github.com/users/CtrlZvi/orgs","repos_url":"https://api.github.com/users/CtrlZvi/repos","events_url":"https://api.github.com/users/CtrlZvi/events{/privacy}","received_events_url":"https://api.github.com/users/CtrlZvi/received_events","type":"User","site_admin":false},"labels":[{"id":536945472,"url":"https://api.github.com/repos/python/cpython/labels/CLA%20signed","name":"CLA signed","color":"0e8a16","default":false}],"state":"closed","locked":false,"assignee":{"login":"asvetlov","id":356399,"avatar_url":"https://avatars0.githubusercontent.com/u/356399?v=4","gravatar_id":"","url":"https://api.github.com/users/asvetlov","html_url":"https://github.com/asvetlov","followers_url":"https://api.github.com/users/asvetlov/followers","following_url":"https://api.github.com/users/asvetlov/following{/other_user}","gists_url":"https://api.github.com/users/asvetlov/gists{/gist_id}","starred_url":"https://api.github.com/users/asvetlov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asvetlov/subscriptions","organizations_url":"https://api.github.com/users/asvetlov/orgs","repos_url":"https://api.github.com/users/asvetlov/repos","events_url":"https://api.github.com/users/asvetlov/events{/privacy}","received_events_url":"https://api.github.com/users/asvetlov/received_events","type":"User","site_admin":false},"assignees":[{"login":"asvetlov","id":356399,"avatar_url":"https://avatars0.githubusercontent.com/u/356399?v=4","gravatar_id":"","url":"https://api.github.com/users/asvetlov","html_url":"https://github.com/asvetlov","followers_url":"https://api.github.com/users/asvetlov/followers","following_url":"https://api.github.com/users/asvetlov/following{/other_user}","gists_url":"https://api.github.com/users/asvetlov/gists{/gist_id}","starred_url":"https://api.github.com/users/asvetlov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/asvetlov/subscriptions","organizations_url":"https://api.github.com/users/asvetlov/orgs","repos_url":"https://api.github.com/users/asvetlov/repos","events_url":"https://api.github.com/users/asvetlov/events{/privacy}","received_events_url":"https://api.github.com/users/asvetlov/received_events","type":"User","site_admin":false}],"milestone":null,"comments":10,"created_at":"2018-05-16T21:26:22Z","updated_at":"2018-05-25T07:18:47Z","closed_at":"2018-05-20T10:21:11Z","author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/python/cpython/pulls/6921","html_url":"https://github.com/python/cpython/pull/6921","diff_url":"https://github.com/python/cpython/pull/6921.diff","patch_url":"https://github.com/python/cpython/pull/6921.patch"},"body":"The proactor event loop has a race condition when reading with\r\npausing/resuming. `resume_reading()` unconditionally schedules the read\r\nfunction to read from the current future. If `resume_reading()` was\r\ncalled before the previously scheduled done callback fires, this results\r\nin two attempts to get the data from the most recent read and an\r\nassertion failure. This commit tracks whether or not `resume_reading`\r\nneeds to reschedule the callback to restart the loop, preventing a\r\nsecond attempt to read the data.\n\n<!-- issue-number: bpo-26819 -->\nhttps://bugs.python.org/issue26819\n<!-- /issue-number -->\n"},"comment":{"url":"https://api.github.com/repos/python/cpython/issues/comments/391964714","html_url":"https://github.com/python/cpython/pull/6921#issuecomment-391964714","issue_url":"https://api.github.com/repos/python/cpython/issues/6921","id":391964714,"user":{"login":"bedevere-bot","id":28579281,"avatar_url":"https://avatars0.githubusercontent.com/u/28579281?v=4","gravatar_id":"","url":"https://api.github.com/users/bedevere-bot","html_url":"https://github.com/bedevere-bot","followers_url":"https://api.github.com/users/bedevere-bot/followers","following_url":"https://api.github.com/users/bedevere-bot/following{/other_user}","gists_url":"https://api.github.com/users/bedevere-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/bedevere-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bedevere-bot/subscriptions","organizations_url":"https://api.github.com/users/bedevere-bot/orgs","repos_url":"https://api.github.com/users/bedevere-bot/repos","events_url":"https://api.github.com/users/bedevere-bot/events{/privacy}","received_events_url":"https://api.github.com/users/bedevere-bot/received_events","type":"User","site_admin":false},"created_at":"2018-05-25T07:18:47Z","updated_at":"2018-05-25T07:18:47Z","author_association":"NONE","body":"[GH-7110](https://github.com/python/cpython/pull/7110) is a backport of this pull request to the [3.6 branch](https://github.com/python/cpython/tree/3.6)."}}
{"actor":{"display_login":"bedevere-bot"}}