{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/11043","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/11043/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/11043/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/11043/events","html_url":"https://github.com/grpc/grpc/issues/11043","id":227405012,"number":11043,"title":"Idle channels sometimes fails RPCs with UNAVAILABLE status","user":{"login":"nathanielmanistaatgoogle","id":10131044,"avatar_url":"https://avatars3.githubusercontent.com/u/10131044?v=3","gravatar_id":"","url":"https://api.github.com/users/nathanielmanistaatgoogle","html_url":"https://github.com/nathanielmanistaatgoogle","followers_url":"https://api.github.com/users/nathanielmanistaatgoogle/followers","following_url":"https://api.github.com/users/nathanielmanistaatgoogle/following{/other_user}","gists_url":"https://api.github.com/users/nathanielmanistaatgoogle/gists{/gist_id}","starred_url":"https://api.github.com/users/nathanielmanistaatgoogle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathanielmanistaatgoogle/subscriptions","organizations_url":"https://api.github.com/users/nathanielmanistaatgoogle/orgs","repos_url":"https://api.github.com/users/nathanielmanistaatgoogle/repos","events_url":"https://api.github.com/users/nathanielmanistaatgoogle/events{/privacy}","received_events_url":"https://api.github.com/users/nathanielmanistaatgoogle/received_events","type":"User","site_admin":false},"labels":[{"id":166332702,"url":"https://api.github.com/repos/grpc/grpc/labels/core","name":"core","color":"006b75","default":false},{"id":166651230,"url":"https://api.github.com/repos/grpc/grpc/labels/wrapped%20languages","name":"wrapped languages","color":"103dff","default":false}],"state":"open","locked":false,"assignee":{"login":"apolcyn","id":9566254,"avatar_url":"https://avatars2.githubusercontent.com/u/9566254?v=3","gravatar_id":"","url":"https://api.github.com/users/apolcyn","html_url":"https://github.com/apolcyn","followers_url":"https://api.github.com/users/apolcyn/followers","following_url":"https://api.github.com/users/apolcyn/following{/other_user}","gists_url":"https://api.github.com/users/apolcyn/gists{/gist_id}","starred_url":"https://api.github.com/users/apolcyn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apolcyn/subscriptions","organizations_url":"https://api.github.com/users/apolcyn/orgs","repos_url":"https://api.github.com/users/apolcyn/repos","events_url":"https://api.github.com/users/apolcyn/events{/privacy}","received_events_url":"https://api.github.com/users/apolcyn/received_events","type":"User","site_admin":false},"assignees":[{"login":"apolcyn","id":9566254,"avatar_url":"https://avatars2.githubusercontent.com/u/9566254?v=3","gravatar_id":"","url":"https://api.github.com/users/apolcyn","html_url":"https://github.com/apolcyn","followers_url":"https://api.github.com/users/apolcyn/followers","following_url":"https://api.github.com/users/apolcyn/following{/other_user}","gists_url":"https://api.github.com/users/apolcyn/gists{/gist_id}","starred_url":"https://api.github.com/users/apolcyn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apolcyn/subscriptions","organizations_url":"https://api.github.com/users/apolcyn/orgs","repos_url":"https://api.github.com/users/apolcyn/repos","events_url":"https://api.github.com/users/apolcyn/events{/privacy}","received_events_url":"https://api.github.com/users/apolcyn/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2017-05-09T15:27:32Z","updated_at":"2017-05-10T18:04:01Z","closed_at":null,"body":"When a gRPC channel goes idle, the first request started after it went idle will sometimes fail with status UNAVAILABLE. [This doesn't seem to be in line with the documented cases for UNAVAILABLE status](https://github.com/grpc/grpc/blob/99f20dbef8d812d468a54b58b2c55c28ea31cc54/doc/statuscodes.md), and since UNAVAILABLE is not a retriable status, implementing correct application-level semantics are more difficult.\r\n\r\nWhy does the Core say UNAVAILABLE when it doesn't have recent-in-time link-layer evidence to believe that the remote host is UNAVAILABLE? Or is there something I'm misunderstanding about channels going idle?"},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/300565638","html_url":"https://github.com/grpc/grpc/issues/11043#issuecomment-300565638","issue_url":"https://api.github.com/repos/grpc/grpc/issues/11043","id":300565638,"user":{"login":"marshallbrekka","id":436140,"avatar_url":"https://avatars2.githubusercontent.com/u/436140?v=3","gravatar_id":"","url":"https://api.github.com/users/marshallbrekka","html_url":"https://github.com/marshallbrekka","followers_url":"https://api.github.com/users/marshallbrekka/followers","following_url":"https://api.github.com/users/marshallbrekka/following{/other_user}","gists_url":"https://api.github.com/users/marshallbrekka/gists{/gist_id}","starred_url":"https://api.github.com/users/marshallbrekka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marshallbrekka/subscriptions","organizations_url":"https://api.github.com/users/marshallbrekka/orgs","repos_url":"https://api.github.com/users/marshallbrekka/repos","events_url":"https://api.github.com/users/marshallbrekka/events{/privacy}","received_events_url":"https://api.github.com/users/marshallbrekka/received_events","type":"User","site_admin":false},"created_at":"2017-05-10T18:04:01Z","updated_at":"2017-05-10T18:04:01Z","body":"Roughly this\r\n\r\n```\r\n$ ruby greeter_client.rb &\r\n$ ruby greeter_server.rb\r\n# watch for log from server receiving request\r\n<ctrl-c>\r\n$ ruby greeter_server.rb\r\n```\r\n\r\nI was able to reproduce the issue using both `ctrl-c`, and `kill -9 <pid>` against the server."}}
{"actor":{"display_login":"marshallbrekka"}}