{"action":"opened","number":616,"pull_request":{"url":"https://api.github.com/repos/alibaba/tengine/pulls/616","id":36357144,"html_url":"https://github.com/alibaba/tengine/pull/616","diff_url":"https://github.com/alibaba/tengine/pull/616.diff","patch_url":"https://github.com/alibaba/tengine/pull/616.patch","issue_url":"https://api.github.com/repos/alibaba/tengine/issues/616","number":616,"state":"open","locked":false,"title":"Replace tengine`s SO_REUSEPORT implementation with the official from nginx 1.9.1 [backport]","user":{"login":"Profforgr","id":3028576,"avatar_url":"https://avatars.githubusercontent.com/u/3028576?v=3","gravatar_id":"","url":"https://api.github.com/users/Profforgr","html_url":"https://github.com/Profforgr","followers_url":"https://api.github.com/users/Profforgr/followers","following_url":"https://api.github.com/users/Profforgr/following{/other_user}","gists_url":"https://api.github.com/users/Profforgr/gists{/gist_id}","starred_url":"https://api.github.com/users/Profforgr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Profforgr/subscriptions","organizations_url":"https://api.github.com/users/Profforgr/orgs","repos_url":"https://api.github.com/users/Profforgr/repos","events_url":"https://api.github.com/users/Profforgr/events{/privacy}","received_events_url":"https://api.github.com/users/Profforgr/received_events","type":"User","site_admin":false},"body":"In nginx 1.9.1 reuseport socket option was introduced. I think better to replace tengine`s implementation with this.\r\n\r\nRelated commits:\r\nhttp://trac.nginx.org/nginx/changeset/b4cc553aafeb4b7e19b63e6846490e2835d7e853/nginx/\r\nhttp://trac.nginx.org/nginx/changeset/4f6efabcb09b693ac5461f2b1d05a526f9710137/nginx/\r\nhttp://trac.nginx.org/nginx/changeset/193bbc006d5e0ddf71322ceb1114b81e3c661c65/nginx/\r\n\r\nI am not sure does it needed for reuseport, so i've just also backported http://trac.nginx.org/nginx/changeset/3c344ea7d88bb839ef2814164342c635aaad816f/nginx/\r\nAnd this just by the way (may be reverted) http://trac.nginx.org/nginx/changeset/b19350b896bb390a639a7e4cf099781b73cb4fa7/nginx/","created_at":"2015-05-27T22:53:25Z","updated_at":"2015-05-27T22:53:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/alibaba/tengine/pulls/616/commits","review_comments_url":"https://api.github.com/repos/alibaba/tengine/pulls/616/comments","review_comment_url":"https://api.github.com/repos/alibaba/tengine/pulls/comments{/number}","comments_url":"https://api.github.com/repos/alibaba/tengine/issues/616/comments","statuses_url":"https://api.github.com/repos/alibaba/tengine/statuses/510e34d94522b0c4466558a711d3e1c0271b7603","head":{"label":"Profforgr:master","ref":"master","sha":"510e34d94522b0c4466558a711d3e1c0271b7603","user":{"login":"Profforgr","id":3028576,"avatar_url":"https://avatars.githubusercontent.com/u/3028576?v=3","gravatar_id":"","url":"https://api.github.com/users/Profforgr","html_url":"https://github.com/Profforgr","followers_url":"https://api.github.com/users/Profforgr/followers","following_url":"https://api.github.com/users/Profforgr/following{/other_user}","gists_url":"https://api.github.com/users/Profforgr/gists{/gist_id}","starred_url":"https://api.github.com/users/Profforgr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Profforgr/subscriptions","organizations_url":"https://api.github.com/users/Profforgr/orgs","repos_url":"https://api.github.com/users/Profforgr/repos","events_url":"https://api.github.com/users/Profforgr/events{/privacy}","received_events_url":"https://api.github.com/users/Profforgr/received_events","type":"User","site_admin":false},"repo":{"id":36400235,"name":"tengine","full_name":"Profforgr/tengine","owner":{"login":"Profforgr","id":3028576,"avatar_url":"https://avatars.githubusercontent.com/u/3028576?v=3","gravatar_id":"","url":"https://api.github.com/users/Profforgr","html_url":"https://github.com/Profforgr","followers_url":"https://api.github.com/users/Profforgr/followers","following_url":"https://api.github.com/users/Profforgr/following{/other_user}","gists_url":"https://api.github.com/users/Profforgr/gists{/gist_id}","starred_url":"https://api.github.com/users/Profforgr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Profforgr/subscriptions","organizations_url":"https://api.github.com/users/Profforgr/orgs","repos_url":"https://api.github.com/users/Profforgr/repos","events_url":"https://api.github.com/users/Profforgr/events{/privacy}","received_events_url":"https://api.github.com/users/Profforgr/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Profforgr/tengine","description":"A distribution of Nginx with some advanced features","fork":true,"url":"https://api.github.com/repos/Profforgr/tengine","forks_url":"https://api.github.com/repos/Profforgr/tengine/forks","keys_url":"https://api.github.com/repos/Profforgr/tengine/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Profforgr/tengine/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Profforgr/tengine/teams","hooks_url":"https://api.github.com/repos/Profforgr/tengine/hooks","issue_events_url":"https://api.github.com/repos/Profforgr/tengine/issues/events{/number}","events_url":"https://api.github.com/repos/Profforgr/tengine/events","assignees_url":"https://api.github.com/repos/Profforgr/tengine/assignees{/user}","branches_url":"https://api.github.com/repos/Profforgr/tengine/branches{/branch}","tags_url":"https://api.github.com/repos/Profforgr/tengine/tags","blobs_url":"https://api.github.com/repos/Profforgr/tengine/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Profforgr/tengine/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Profforgr/tengine/git/refs{/sha}","trees_url":"https://api.github.com/repos/Profforgr/tengine/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Profforgr/tengine/statuses/{sha}","languages_url":"https://api.github.com/repos/Profforgr/tengine/languages","stargazers_url":"https://api.github.com/repos/Profforgr/tengine/stargazers","contributors_url":"https://api.github.com/repos/Profforgr/tengine/contributors","subscribers_url":"https://api.github.com/repos/Profforgr/tengine/subscribers","subscription_url":"https://api.github.com/repos/Profforgr/tengine/subscription","commits_url":"https://api.github.com/repos/Profforgr/tengine/commits{/sha}","git_commits_url":"https://api.github.com/repos/Profforgr/tengine/git/commits{/sha}","comments_url":"https://api.github.com/repos/Profforgr/tengine/comments{/number}","issue_comment_url":"https://api.github.com/repos/Profforgr/tengine/issues/comments{/number}","contents_url":"https://api.github.com/repos/Profforgr/tengine/contents/{+path}","compare_url":"https://api.github.com/repos/Profforgr/tengine/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Profforgr/tengine/merges","archive_url":"https://api.github.com/repos/Profforgr/tengine/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Profforgr/tengine/downloads","issues_url":"https://api.github.com/repos/Profforgr/tengine/issues{/number}","pulls_url":"https://api.github.com/repos/Profforgr/tengine/pulls{/number}","milestones_url":"https://api.github.com/repos/Profforgr/tengine/milestones{/number}","notifications_url":"https://api.github.com/repos/Profforgr/tengine/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Profforgr/tengine/labels{/name}","releases_url":"https://api.github.com/repos/Profforgr/tengine/releases{/id}","created_at":"2015-05-27T22:42:35Z","updated_at":"2015-05-27T22:42:41Z","pushed_at":"2015-05-27T22:43:59Z","git_url":"git://github.com/Profforgr/tengine.git","ssh_url":"git@github.com:Profforgr/tengine.git","clone_url":"https://github.com/Profforgr/tengine.git","svn_url":"https://github.com/Profforgr/tengine","homepage":"http://tengine.taobao.org/","size":25653,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"alibaba:master","ref":"master","sha":"5b84b3330f93fffd88af9845aea1cd7ed113b0dd","user":{"login":"alibaba","id":1961952,"avatar_url":"https://avatars.githubusercontent.com/u/1961952?v=3","gravatar_id":"","url":"https://api.github.com/users/alibaba","html_url":"https://github.com/alibaba","followers_url":"https://api.github.com/users/alibaba/followers","following_url":"https://api.github.com/users/alibaba/following{/other_user}","gists_url":"https://api.github.com/users/alibaba/gists{/gist_id}","starred_url":"https://api.github.com/users/alibaba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alibaba/subscriptions","organizations_url":"https://api.github.com/users/alibaba/orgs","repos_url":"https://api.github.com/users/alibaba/repos","events_url":"https://api.github.com/users/alibaba/events{/privacy}","received_events_url":"https://api.github.com/users/alibaba/received_events","type":"Organization","site_admin":false},"repo":{"id":3784017,"name":"tengine","full_name":"alibaba/tengine","owner":{"login":"alibaba","id":1961952,"avatar_url":"https://avatars.githubusercontent.com/u/1961952?v=3","gravatar_id":"","url":"https://api.github.com/users/alibaba","html_url":"https://github.com/alibaba","followers_url":"https://api.github.com/users/alibaba/followers","following_url":"https://api.github.com/users/alibaba/following{/other_user}","gists_url":"https://api.github.com/users/alibaba/gists{/gist_id}","starred_url":"https://api.github.com/users/alibaba/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alibaba/subscriptions","organizations_url":"https://api.github.com/users/alibaba/orgs","repos_url":"https://api.github.com/users/alibaba/repos","events_url":"https://api.github.com/users/alibaba/events{/privacy}","received_events_url":"https://api.github.com/users/alibaba/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/alibaba/tengine","description":"A distribution of Nginx with some advanced features","fork":false,"url":"https://api.github.com/repos/alibaba/tengine","forks_url":"https://api.github.com/repos/alibaba/tengine/forks","keys_url":"https://api.github.com/repos/alibaba/tengine/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alibaba/tengine/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alibaba/tengine/teams","hooks_url":"https://api.github.com/repos/alibaba/tengine/hooks","issue_events_url":"https://api.github.com/repos/alibaba/tengine/issues/events{/number}","events_url":"https://api.github.com/repos/alibaba/tengine/events","assignees_url":"https://api.github.com/repos/alibaba/tengine/assignees{/user}","branches_url":"https://api.github.com/repos/alibaba/tengine/branches{/branch}","tags_url":"https://api.github.com/repos/alibaba/tengine/tags","blobs_url":"https://api.github.com/repos/alibaba/tengine/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alibaba/tengine/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alibaba/tengine/git/refs{/sha}","trees_url":"https://api.github.com/repos/alibaba/tengine/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alibaba/tengine/statuses/{sha}","languages_url":"https://api.github.com/repos/alibaba/tengine/languages","stargazers_url":"https://api.github.com/repos/alibaba/tengine/stargazers","contributors_url":"https://api.github.com/repos/alibaba/tengine/contributors","subscribers_url":"https://api.github.com/repos/alibaba/tengine/subscribers","subscription_url":"https://api.github.com/repos/alibaba/tengine/subscription","commits_url":"https://api.github.com/repos/alibaba/tengine/commits{/sha}","git_commits_url":"https://api.github.com/repos/alibaba/tengine/git/commits{/sha}","comments_url":"https://api.github.com/repos/alibaba/tengine/comments{/number}","issue_comment_url":"https://api.github.com/repos/alibaba/tengine/issues/comments{/number}","contents_url":"https://api.github.com/repos/alibaba/tengine/contents/{+path}","compare_url":"https://api.github.com/repos/alibaba/tengine/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alibaba/tengine/merges","archive_url":"https://api.github.com/repos/alibaba/tengine/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alibaba/tengine/downloads","issues_url":"https://api.github.com/repos/alibaba/tengine/issues{/number}","pulls_url":"https://api.github.com/repos/alibaba/tengine/pulls{/number}","milestones_url":"https://api.github.com/repos/alibaba/tengine/milestones{/number}","notifications_url":"https://api.github.com/repos/alibaba/tengine/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alibaba/tengine/labels{/name}","releases_url":"https://api.github.com/repos/alibaba/tengine/releases{/id}","created_at":"2012-03-21T06:34:37Z","updated_at":"2015-05-27T15:25:59Z","pushed_at":"2015-05-27T15:49:30Z","git_url":"git://github.com/alibaba/tengine.git","ssh_url":"git@github.com:alibaba/tengine.git","clone_url":"https://github.com/alibaba/tengine.git","svn_url":"https://github.com/alibaba/tengine","homepage":"http://tengine.taobao.org/","size":25653,"stargazers_count":2964,"watchers_count":2964,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":873,"mirror_url":null,"open_issues_count":66,"forks":873,"open_issues":66,"watchers":2964,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/alibaba/tengine/pulls/616"},"html":{"href":"https://github.com/alibaba/tengine/pull/616"},"issue":{"href":"https://api.github.com/repos/alibaba/tengine/issues/616"},"comments":{"href":"https://api.github.com/repos/alibaba/tengine/issues/616/comments"},"review_comments":{"href":"https://api.github.com/repos/alibaba/tengine/pulls/616/comments"},"review_comment":{"href":"https://api.github.com/repos/alibaba/tengine/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/alibaba/tengine/pulls/616/commits"},"statuses":{"href":"https://api.github.com/repos/alibaba/tengine/statuses/510e34d94522b0c4466558a711d3e1c0271b7603"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":194,"deletions":189,"changed_files":13}}