{"action":"created","issue":{"url":"https://api.github.com/repos/hapijs/hapi/issues/2854","labels_url":"https://api.github.com/repos/hapijs/hapi/issues/2854/labels{/name}","comments_url":"https://api.github.com/repos/hapijs/hapi/issues/2854/comments","events_url":"https://api.github.com/repos/hapijs/hapi/issues/2854/events","html_url":"https://github.com/hapijs/hapi/issues/2854","id":112051355,"number":2854,"title":"Ext invoke inconsistent with sync vs. async callback","user":{"login":"kpdecker","id":196390,"avatar_url":"https://avatars.githubusercontent.com/u/196390?v=3","gravatar_id":"","url":"https://api.github.com/users/kpdecker","html_url":"https://github.com/kpdecker","followers_url":"https://api.github.com/users/kpdecker/followers","following_url":"https://api.github.com/users/kpdecker/following{/other_user}","gists_url":"https://api.github.com/users/kpdecker/gists{/gist_id}","starred_url":"https://api.github.com/users/kpdecker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kpdecker/subscriptions","organizations_url":"https://api.github.com/users/kpdecker/orgs","repos_url":"https://api.github.com/users/kpdecker/repos","events_url":"https://api.github.com/users/kpdecker/events{/privacy}","received_events_url":"https://api.github.com/users/kpdecker/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-10-19T00:00:24Z","updated_at":"2015-10-19T04:57:43Z","closed_at":null,"body":"Prior to [this change](https://github.com/hapijs/hapi/commit/ae2c280f48aa5ccd8ba60537521f5f4e98af11d2#diff-c945a46d13b34fcaff544d966cffcabaL342), server extensions were always async. After the above change, this is causing a test failure in nes (See below) due to cleanup not completing prior to the `server.stop` callback method being called.\r\n\r\nIn some ways this test was passing as a coincidence of the async behavior, so arguably the fix should be made in there, but filing a bug here to address the potential Zalgo concerns in the API itself.\r\n\r\n\r\n```\r\n  86) Listener _subscribe() subscribes to two paths on same subscription:\r\n\r\n      actual expected\r\n\r\n      {}\r\n\r\n      Expected { Object (1445213006672:hayes:32242:ifx6icss:10000) } to equal specified value\r\n\r\n      at nes/test/listener.js:356:74\r\n```"},"comment":{"url":"https://api.github.com/repos/hapijs/hapi/issues/comments/149098669","html_url":"https://github.com/hapijs/hapi/issues/2854#issuecomment-149098669","issue_url":"https://api.github.com/repos/hapijs/hapi/issues/2854","id":149098669,"user":{"login":"hueniverse","id":56631,"avatar_url":"https://avatars.githubusercontent.com/u/56631?v=3","gravatar_id":"","url":"https://api.github.com/users/hueniverse","html_url":"https://github.com/hueniverse","followers_url":"https://api.github.com/users/hueniverse/followers","following_url":"https://api.github.com/users/hueniverse/following{/other_user}","gists_url":"https://api.github.com/users/hueniverse/gists{/gist_id}","starred_url":"https://api.github.com/users/hueniverse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hueniverse/subscriptions","organizations_url":"https://api.github.com/users/hueniverse/orgs","repos_url":"https://api.github.com/users/hueniverse/repos","events_url":"https://api.github.com/users/hueniverse/events{/privacy}","received_events_url":"https://api.github.com/users/hueniverse/received_events","type":"User","site_admin":false},"created_at":"2015-10-19T04:57:43Z","updated_at":"2015-10-19T04:57:43Z","body":"I don't think this is a bug. If you notice, the next tick call was only added when no extension was found. If one was found, unless it called `reply()` (and not just `reply.continue()`, no next tick is inserted."}}