{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/5787","repository_url":"https://api.github.com/repos/netty/netty","labels_url":"https://api.github.com/repos/netty/netty/issues/5787/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/5787/comments","events_url":"https://api.github.com/repos/netty/netty/issues/5787/events","html_url":"https://github.com/netty/netty/issues/5787","id":174517537,"number":5787,"title":"Weak spot in SniHandler","user":{"login":"rkapsi","id":191635,"avatar_url":"https://avatars.githubusercontent.com/u/191635?v=3","gravatar_id":"","url":"https://api.github.com/users/rkapsi","html_url":"https://github.com/rkapsi","followers_url":"https://api.github.com/users/rkapsi/followers","following_url":"https://api.github.com/users/rkapsi/following{/other_user}","gists_url":"https://api.github.com/users/rkapsi/gists{/gist_id}","starred_url":"https://api.github.com/users/rkapsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rkapsi/subscriptions","organizations_url":"https://api.github.com/users/rkapsi/orgs","repos_url":"https://api.github.com/users/rkapsi/repos","events_url":"https://api.github.com/users/rkapsi/events{/privacy}","received_events_url":"https://api.github.com/users/rkapsi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-09-01T13:03:06Z","updated_at":"2016-09-16T16:17:52Z","closed_at":null,"body":"This is a follow up to #5786 \r\n\r\nIMHO, the `select()` call at line ~244-247 should catch, re-throw it via `fireExceptionCaught()` and exit altogether. Exceptions are currently being caught by the outer `try-catch-Throwable` which will do a fallback to non-SNI.\r\n\r\nBasically it's currently not possible to \"refuse service\" (if I have detected abusive behavior for example) and it'll always do that fallback which leads to being hit 2x.\r\n\r\nIf the `AsyncMapper` has a non O(1) cost it's a great way to generate some extra load on the server. ;)"},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/247643010","html_url":"https://github.com/netty/netty/issues/5787#issuecomment-247643010","issue_url":"https://api.github.com/repos/netty/netty/issues/5787","id":247643010,"user":{"login":"rkapsi","id":191635,"avatar_url":"https://avatars.githubusercontent.com/u/191635?v=3","gravatar_id":"","url":"https://api.github.com/users/rkapsi","html_url":"https://github.com/rkapsi","followers_url":"https://api.github.com/users/rkapsi/followers","following_url":"https://api.github.com/users/rkapsi/following{/other_user}","gists_url":"https://api.github.com/users/rkapsi/gists{/gist_id}","starred_url":"https://api.github.com/users/rkapsi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rkapsi/subscriptions","organizations_url":"https://api.github.com/users/rkapsi/orgs","repos_url":"https://api.github.com/users/rkapsi/repos","events_url":"https://api.github.com/users/rkapsi/events{/privacy}","received_events_url":"https://api.github.com/users/rkapsi/received_events","type":"User","site_admin":false},"created_at":"2016-09-16T16:17:51Z","updated_at":"2016-09-16T16:17:51Z","body":"@Scottmitch on closer look there appears to be also a bug. Notice how select's isDone() path throws an DecoderException which in turn goes down the non-SNI path (described above) and if the Future isn't done yet it's adding that listener which doesn't throw but rather sends it down the pipeline.\r\n\r\nYou'll basically get an inconsistent behavior where the non-SNI path sometimes executes and sometimes doesn't.\r\n\r\nI'll open a PR in a bit."}}
{"actor":{"display_login":"rkapsi"}}