{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/5851","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/5851/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/5851/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/5851/events","html_url":"https://github.com/grpc/grpc/issues/5851","id":142097113,"number":5851,"title":"Listen to channel state, using the singleton completion queue, to uncache them when they fail","user":{"login":"jcanizales","id":5120183,"avatar_url":"https://avatars.githubusercontent.com/u/5120183?v=3","gravatar_id":"","url":"https://api.github.com/users/jcanizales","html_url":"https://github.com/jcanizales","followers_url":"https://api.github.com/users/jcanizales/followers","following_url":"https://api.github.com/users/jcanizales/following{/other_user}","gists_url":"https://api.github.com/users/jcanizales/gists{/gist_id}","starred_url":"https://api.github.com/users/jcanizales/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcanizales/subscriptions","organizations_url":"https://api.github.com/users/jcanizales/orgs","repos_url":"https://api.github.com/users/jcanizales/repos","events_url":"https://api.github.com/users/jcanizales/events{/privacy}","received_events_url":"https://api.github.com/users/jcanizales/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/grpc/grpc/labels/ObjC","name":"ObjC","color":"d4c5f9"},{"url":"https://api.github.com/repos/grpc/grpc/labels/P1","name":"P1","color":"ff6666"}],"state":"open","locked":false,"assignee":{"login":"makdharma","id":17325098,"avatar_url":"https://avatars.githubusercontent.com/u/17325098?v=3","gravatar_id":"","url":"https://api.github.com/users/makdharma","html_url":"https://github.com/makdharma","followers_url":"https://api.github.com/users/makdharma/followers","following_url":"https://api.github.com/users/makdharma/following{/other_user}","gists_url":"https://api.github.com/users/makdharma/gists{/gist_id}","starred_url":"https://api.github.com/users/makdharma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/makdharma/subscriptions","organizations_url":"https://api.github.com/users/makdharma/orgs","repos_url":"https://api.github.com/users/makdharma/repos","events_url":"https://api.github.com/users/makdharma/events{/privacy}","received_events_url":"https://api.github.com/users/makdharma/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/grpc/grpc/milestones/41","html_url":"https://github.com/grpc/grpc/milestones/2016/05/21%20Milestone","labels_url":"https://api.github.com/repos/grpc/grpc/milestones/41/labels","id":1724098,"number":41,"title":"2016/05/21 Milestone","description":"","creator":{"login":"nicolasnoble","id":7281574,"avatar_url":"https://avatars.githubusercontent.com/u/7281574?v=3","gravatar_id":"","url":"https://api.github.com/users/nicolasnoble","html_url":"https://github.com/nicolasnoble","followers_url":"https://api.github.com/users/nicolasnoble/followers","following_url":"https://api.github.com/users/nicolasnoble/following{/other_user}","gists_url":"https://api.github.com/users/nicolasnoble/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolasnoble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolasnoble/subscriptions","organizations_url":"https://api.github.com/users/nicolasnoble/orgs","repos_url":"https://api.github.com/users/nicolasnoble/repos","events_url":"https://api.github.com/users/nicolasnoble/events{/privacy}","received_events_url":"https://api.github.com/users/nicolasnoble/received_events","type":"User","site_admin":false},"open_issues":95,"closed_issues":254,"state":"open","created_at":"2016-04-21T23:36:09Z","updated_at":"2016-06-14T02:07:22Z","due_on":"2016-05-21T07:00:00Z","closed_at":null},"comments":5,"created_at":"2016-03-19T20:16:07Z","updated_at":"2016-06-14T16:44:46Z","closed_at":null,"body":"If we don't explicitly listen to channel state, we'll only known of failed channels (e.g. ones that received a `goaway` when no RPC was pending) once the next RPC is attempted (and fails). This is intended behavior of the C layer, for the datacenter use case. Mobile wrappers are thus expected to do this to attain the behavior that's preferable on mobile devices."},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/225942396","html_url":"https://github.com/grpc/grpc/issues/5851#issuecomment-225942396","issue_url":"https://api.github.com/repos/grpc/grpc/issues/5851","id":225942396,"user":{"login":"makdharma","id":17325098,"avatar_url":"https://avatars.githubusercontent.com/u/17325098?v=3","gravatar_id":"","url":"https://api.github.com/users/makdharma","html_url":"https://github.com/makdharma","followers_url":"https://api.github.com/users/makdharma/followers","following_url":"https://api.github.com/users/makdharma/following{/other_user}","gists_url":"https://api.github.com/users/makdharma/gists{/gist_id}","starred_url":"https://api.github.com/users/makdharma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/makdharma/subscriptions","organizations_url":"https://api.github.com/users/makdharma/orgs","repos_url":"https://api.github.com/users/makdharma/repos","events_url":"https://api.github.com/users/makdharma/events{/privacy}","received_events_url":"https://api.github.com/users/makdharma/received_events","type":"User","site_admin":false},"created_at":"2016-06-14T16:44:46Z","updated_at":"2016-06-14T16:44:46Z","body":"I wrote a test to create the scenario described in this bug without success. Looking further, I noticed that the completion queue in ObjectiveC is constantly polled in a while loop. This makes C core notice the goaway and connection issues without needing to spin another completion queue or starting a watcher. See here https://github.com/grpc/grpc/blob/master/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m#L69\r\nThis bug is actually not a valid bug. I propose closing. @jcanizales , @ctiller - any objections?"}}
{"actor":{"display_login":"makdharma"}}