{"action":"closed","number":6450,"pull_request":{"url":"https://api.github.com/repos/python/cpython/pulls/6450","id":180972469,"html_url":"https://github.com/python/cpython/pull/6450","diff_url":"https://github.com/python/cpython/pull/6450.diff","patch_url":"https://github.com/python/cpython/pull/6450.patch","issue_url":"https://api.github.com/repos/python/cpython/issues/6450","number":6450,"state":"closed","locked":false,"title":"bpo-33263: Fix FD leak in _SelectorSocketTransport","user":{"login":"drtyrsa","id":1021409,"avatar_url":"https://avatars1.githubusercontent.com/u/1021409?v=4","gravatar_id":"","url":"https://api.github.com/users/drtyrsa","html_url":"https://github.com/drtyrsa","followers_url":"https://api.github.com/users/drtyrsa/followers","following_url":"https://api.github.com/users/drtyrsa/following{/other_user}","gists_url":"https://api.github.com/users/drtyrsa/gists{/gist_id}","starred_url":"https://api.github.com/users/drtyrsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drtyrsa/subscriptions","organizations_url":"https://api.github.com/users/drtyrsa/orgs","repos_url":"https://api.github.com/users/drtyrsa/repos","events_url":"https://api.github.com/users/drtyrsa/events{/privacy}","received_events_url":"https://api.github.com/users/drtyrsa/received_events","type":"User","site_admin":false},"body":"Under particular circumstances _SelectorSocketTransport can try to add a reader\r\neven the transport is already being closed. This can lead to FD leak and\r\ninvalid stated of the following connections. Fixed the SelectorSocketTransport\r\nto add the reader only if the trasport is still active.\r\n\r\n<!--\r\nThanks for your contribution!\r\nPlease read this comment in its entirety. It's quite important.\r\n\r\n# Pull Request title\r\n\r\nIt should be in the following format:\r\n```\r\nbpo-NNNN: Summary of the changes made\r\n```\r\nWhere: bpo-NNNN refers to the issue number in the https://bugs.python.org.\r\n\r\nMost PRs will require an issue number. Trivial changes, like fixing a typo, do not need an issue.\r\n\r\n# Backport Pull Request title\r\n\r\nIf this is a backport PR (PR made against branches other than `master`),\r\nplease ensure that the PR title is in the following format:\r\n```\r\n[X.Y] <title from the original PR> (GH-NNNN)\r\n```\r\nWhere: [X.Y] is the branch name, e.g. [3.6].\r\n\r\nGH-NNNN refers to the PR number from `master`.\r\n\r\n-->\r\n\n\n<!-- issue-number: bpo-33263 -->\nhttps://bugs.python.org/issue33263\n<!-- /issue-number -->\n","created_at":"2018-04-11T17:17:38Z","updated_at":"2018-05-21T08:13:46Z","closed_at":"2018-05-21T08:13:46Z","merged_at":"2018-05-21T08:13:46Z","merge_commit_sha":"a84d0b361a26c05c6fadc6640591ec3feee5bfb5","assignee":null,"assignees":[],"requested_reviewers":[{"login":"1st1","id":239003,"avatar_url":"https://avatars0.githubusercontent.com/u/239003?v=4","gravatar_id":"","url":"https://api.github.com/users/1st1","html_url":"https://github.com/1st1","followers_url":"https://api.github.com/users/1st1/followers","following_url":"https://api.github.com/users/1st1/following{/other_user}","gists_url":"https://api.github.com/users/1st1/gists{/gist_id}","starred_url":"https://api.github.com/users/1st1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/1st1/subscriptions","organizations_url":"https://api.github.com/users/1st1/orgs","repos_url":"https://api.github.com/users/1st1/repos","events_url":"https://api.github.com/users/1st1/events{/privacy}","received_events_url":"https://api.github.com/users/1st1/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":536945472,"url":"https://api.github.com/repos/python/cpython/labels/CLA%20signed","name":"CLA signed","color":"0e8a16","default":false},{"id":666980059,"url":"https://api.github.com/repos/python/cpython/labels/awaiting%20merge","name":"awaiting merge","color":"fbca04","default":false},{"id":557226369,"url":"https://api.github.com/repos/python/cpython/labels/expert-asyncio","name":"expert-asyncio","color":"c5def5","default":false},{"id":536945649,"url":"https://api.github.com/repos/python/cpython/labels/needs%20backport%20to%203.6","name":"needs backport to 3.6","color":"c2e0c6","default":false},{"id":823079334,"url":"https://api.github.com/repos/python/cpython/labels/needs%20backport%20to%203.7","name":"needs backport to 3.7","color":"c2e0c6","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/python/cpython/pulls/6450/commits","review_comments_url":"https://api.github.com/repos/python/cpython/pulls/6450/comments","review_comment_url":"https://api.github.com/repos/python/cpython/pulls/comments{/number}","comments_url":"https://api.github.com/repos/python/cpython/issues/6450/comments","statuses_url":"https://api.github.com/repos/python/cpython/statuses/d2e31150466f2a4c03b62c48abd49d9d8c58e03e","head":{"label":"drtyrsa:bpo-33263","ref":"bpo-33263","sha":"d2e31150466f2a4c03b62c48abd49d9d8c58e03e","user":{"login":"drtyrsa","id":1021409,"avatar_url":"https://avatars1.githubusercontent.com/u/1021409?v=4","gravatar_id":"","url":"https://api.github.com/users/drtyrsa","html_url":"https://github.com/drtyrsa","followers_url":"https://api.github.com/users/drtyrsa/followers","following_url":"https://api.github.com/users/drtyrsa/following{/other_user}","gists_url":"https://api.github.com/users/drtyrsa/gists{/gist_id}","starred_url":"https://api.github.com/users/drtyrsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drtyrsa/subscriptions","organizations_url":"https://api.github.com/users/drtyrsa/orgs","repos_url":"https://api.github.com/users/drtyrsa/repos","events_url":"https://api.github.com/users/drtyrsa/events{/privacy}","received_events_url":"https://api.github.com/users/drtyrsa/received_events","type":"User","site_admin":false},"repo":{"id":129125435,"name":"cpython","full_name":"drtyrsa/cpython","owner":{"login":"drtyrsa","id":1021409,"avatar_url":"https://avatars1.githubusercontent.com/u/1021409?v=4","gravatar_id":"","url":"https://api.github.com/users/drtyrsa","html_url":"https://github.com/drtyrsa","followers_url":"https://api.github.com/users/drtyrsa/followers","following_url":"https://api.github.com/users/drtyrsa/following{/other_user}","gists_url":"https://api.github.com/users/drtyrsa/gists{/gist_id}","starred_url":"https://api.github.com/users/drtyrsa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drtyrsa/subscriptions","organizations_url":"https://api.github.com/users/drtyrsa/orgs","repos_url":"https://api.github.com/users/drtyrsa/repos","events_url":"https://api.github.com/users/drtyrsa/events{/privacy}","received_events_url":"https://api.github.com/users/drtyrsa/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/drtyrsa/cpython","description":"The Python programming language","fork":true,"url":"https://api.github.com/repos/drtyrsa/cpython","forks_url":"https://api.github.com/repos/drtyrsa/cpython/forks","keys_url":"https://api.github.com/repos/drtyrsa/cpython/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drtyrsa/cpython/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drtyrsa/cpython/teams","hooks_url":"https://api.github.com/repos/drtyrsa/cpython/hooks","issue_events_url":"https://api.github.com/repos/drtyrsa/cpython/issues/events{/number}","events_url":"https://api.github.com/repos/drtyrsa/cpython/events","assignees_url":"https://api.github.com/repos/drtyrsa/cpython/assignees{/user}","branches_url":"https://api.github.com/repos/drtyrsa/cpython/branches{/branch}","tags_url":"https://api.github.com/repos/drtyrsa/cpython/tags","blobs_url":"https://api.github.com/repos/drtyrsa/cpython/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drtyrsa/cpython/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drtyrsa/cpython/git/refs{/sha}","trees_url":"https://api.github.com/repos/drtyrsa/cpython/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drtyrsa/cpython/statuses/{sha}","languages_url":"https://api.github.com/repos/drtyrsa/cpython/languages","stargazers_url":"https://api.github.com/repos/drtyrsa/cpython/stargazers","contributors_url":"https://api.github.com/repos/drtyrsa/cpython/contributors","subscribers_url":"https://api.github.com/repos/drtyrsa/cpython/subscribers","subscription_url":"https://api.github.com/repos/drtyrsa/cpython/subscription","commits_url":"https://api.github.com/repos/drtyrsa/cpython/commits{/sha}","git_commits_url":"https://api.github.com/repos/drtyrsa/cpython/git/commits{/sha}","comments_url":"https://api.github.com/repos/drtyrsa/cpython/comments{/number}","issue_comment_url":"https://api.github.com/repos/drtyrsa/cpython/issues/comments{/number}","contents_url":"https://api.github.com/repos/drtyrsa/cpython/contents/{+path}","compare_url":"https://api.github.com/repos/drtyrsa/cpython/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drtyrsa/cpython/merges","archive_url":"https://api.github.com/repos/drtyrsa/cpython/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drtyrsa/cpython/downloads","issues_url":"https://api.github.com/repos/drtyrsa/cpython/issues{/number}","pulls_url":"https://api.github.com/repos/drtyrsa/cpython/pulls{/number}","milestones_url":"https://api.github.com/repos/drtyrsa/cpython/milestones{/number}","notifications_url":"https://api.github.com/repos/drtyrsa/cpython/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drtyrsa/cpython/labels{/name}","releases_url":"https://api.github.com/repos/drtyrsa/cpython/releases{/id}","deployments_url":"https://api.github.com/repos/drtyrsa/cpython/deployments","created_at":"2018-04-11T16:50:44Z","updated_at":"2018-04-11T16:51:06Z","pushed_at":"2018-04-11T17:31:04Z","git_url":"git://github.com/drtyrsa/cpython.git","ssh_url":"git@github.com:drtyrsa/cpython.git","clone_url":"https://github.com/drtyrsa/cpython.git","svn_url":"https://github.com/drtyrsa/cpython","homepage":"https://www.python.org/","size":232758,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"python:master","ref":"master","sha":"d08972fdb92cad6b813d22205752c97ea18df060","user":{"login":"python","id":1525981,"avatar_url":"https://avatars3.githubusercontent.com/u/1525981?v=4","gravatar_id":"","url":"https://api.github.com/users/python","html_url":"https://github.com/python","followers_url":"https://api.github.com/users/python/followers","following_url":"https://api.github.com/users/python/following{/other_user}","gists_url":"https://api.github.com/users/python/gists{/gist_id}","starred_url":"https://api.github.com/users/python/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/python/subscriptions","organizations_url":"https://api.github.com/users/python/orgs","repos_url":"https://api.github.com/users/python/repos","events_url":"https://api.github.com/users/python/events{/privacy}","received_events_url":"https://api.github.com/users/python/received_events","type":"Organization","site_admin":false},"repo":{"id":81598961,"name":"cpython","full_name":"python/cpython","owner":{"login":"python","id":1525981,"avatar_url":"https://avatars3.githubusercontent.com/u/1525981?v=4","gravatar_id":"","url":"https://api.github.com/users/python","html_url":"https://github.com/python","followers_url":"https://api.github.com/users/python/followers","following_url":"https://api.github.com/users/python/following{/other_user}","gists_url":"https://api.github.com/users/python/gists{/gist_id}","starred_url":"https://api.github.com/users/python/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/python/subscriptions","organizations_url":"https://api.github.com/users/python/orgs","repos_url":"https://api.github.com/users/python/repos","events_url":"https://api.github.com/users/python/events{/privacy}","received_events_url":"https://api.github.com/users/python/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/python/cpython","description":"The Python programming language","fork":false,"url":"https://api.github.com/repos/python/cpython","forks_url":"https://api.github.com/repos/python/cpython/forks","keys_url":"https://api.github.com/repos/python/cpython/keys{/key_id}","collaborators_url":"https://api.github.com/repos/python/cpython/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/python/cpython/teams","hooks_url":"https://api.github.com/repos/python/cpython/hooks","issue_events_url":"https://api.github.com/repos/python/cpython/issues/events{/number}","events_url":"https://api.github.com/repos/python/cpython/events","assignees_url":"https://api.github.com/repos/python/cpython/assignees{/user}","branches_url":"https://api.github.com/repos/python/cpython/branches{/branch}","tags_url":"https://api.github.com/repos/python/cpython/tags","blobs_url":"https://api.github.com/repos/python/cpython/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/python/cpython/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/python/cpython/git/refs{/sha}","trees_url":"https://api.github.com/repos/python/cpython/git/trees{/sha}","statuses_url":"https://api.github.com/repos/python/cpython/statuses/{sha}","languages_url":"https://api.github.com/repos/python/cpython/languages","stargazers_url":"https://api.github.com/repos/python/cpython/stargazers","contributors_url":"https://api.github.com/repos/python/cpython/contributors","subscribers_url":"https://api.github.com/repos/python/cpython/subscribers","subscription_url":"https://api.github.com/repos/python/cpython/subscription","commits_url":"https://api.github.com/repos/python/cpython/commits{/sha}","git_commits_url":"https://api.github.com/repos/python/cpython/git/commits{/sha}","comments_url":"https://api.github.com/repos/python/cpython/comments{/number}","issue_comment_url":"https://api.github.com/repos/python/cpython/issues/comments{/number}","contents_url":"https://api.github.com/repos/python/cpython/contents/{+path}","compare_url":"https://api.github.com/repos/python/cpython/compare/{base}...{head}","merges_url":"https://api.github.com/repos/python/cpython/merges","archive_url":"https://api.github.com/repos/python/cpython/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/python/cpython/downloads","issues_url":"https://api.github.com/repos/python/cpython/issues{/number}","pulls_url":"https://api.github.com/repos/python/cpython/pulls{/number}","milestones_url":"https://api.github.com/repos/python/cpython/milestones{/number}","notifications_url":"https://api.github.com/repos/python/cpython/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/python/cpython/labels{/name}","releases_url":"https://api.github.com/repos/python/cpython/releases{/id}","deployments_url":"https://api.github.com/repos/python/cpython/deployments","created_at":"2017-02-10T19:23:51Z","updated_at":"2018-05-21T07:34:28Z","pushed_at":"2018-05-21T08:13:45Z","git_url":"git://github.com/python/cpython.git","ssh_url":"git@github.com:python/cpython.git","clone_url":"https://github.com/python/cpython.git","svn_url":"https://github.com/python/cpython","homepage":"https://www.python.org/","size":236811,"stargazers_count":17746,"watchers_count":17746,"language":"Python","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":5413,"mirror_url":null,"archived":false,"open_issues_count":714,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":5413,"open_issues":714,"watchers":17746,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/python/cpython/pulls/6450"},"html":{"href":"https://github.com/python/cpython/pull/6450"},"issue":{"href":"https://api.github.com/repos/python/cpython/issues/6450"},"comments":{"href":"https://api.github.com/repos/python/cpython/issues/6450/comments"},"review_comments":{"href":"https://api.github.com/repos/python/cpython/pulls/6450/comments"},"review_comment":{"href":"https://api.github.com/repos/python/cpython/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/python/cpython/pulls/6450/commits"},"statuses":{"href":"https://api.github.com/repos/python/cpython/statuses/d2e31150466f2a4c03b62c48abd49d9d8c58e03e"}},"author_association":"NONE","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"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},"comments":8,"review_comments":0,"maintainer_can_modify":false,"commits":2,"additions":25,"deletions":3,"changed_files":3}}
{"actor":{"display_login":"asvetlov"}}