{"action":"created","issue":{"url":"https://api.github.com/repos/googleapis/gax-python/issues/168","repository_url":"https://api.github.com/repos/googleapis/gax-python","labels_url":"https://api.github.com/repos/googleapis/gax-python/issues/168/labels{/name}","comments_url":"https://api.github.com/repos/googleapis/gax-python/issues/168/comments","events_url":"https://api.github.com/repos/googleapis/gax-python/issues/168/events","html_url":"https://github.com/googleapis/gax-python/pull/168","id":211469140,"number":168,"title":"Re-raise unrecognized exceptions on retry.","user":{"login":"lukesneeringer","id":4346,"avatar_url":"https://avatars3.githubusercontent.com/u/4346?v=3","gravatar_id":"","url":"https://api.github.com/users/lukesneeringer","html_url":"https://github.com/lukesneeringer","followers_url":"https://api.github.com/users/lukesneeringer/followers","following_url":"https://api.github.com/users/lukesneeringer/following{/other_user}","gists_url":"https://api.github.com/users/lukesneeringer/gists{/gist_id}","starred_url":"https://api.github.com/users/lukesneeringer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukesneeringer/subscriptions","organizations_url":"https://api.github.com/users/lukesneeringer/orgs","repos_url":"https://api.github.com/users/lukesneeringer/repos","events_url":"https://api.github.com/users/lukesneeringer/events{/privacy}","received_events_url":"https://api.github.com/users/lukesneeringer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"lukesneeringer","id":4346,"avatar_url":"https://avatars3.githubusercontent.com/u/4346?v=3","gravatar_id":"","url":"https://api.github.com/users/lukesneeringer","html_url":"https://github.com/lukesneeringer","followers_url":"https://api.github.com/users/lukesneeringer/followers","following_url":"https://api.github.com/users/lukesneeringer/following{/other_user}","gists_url":"https://api.github.com/users/lukesneeringer/gists{/gist_id}","starred_url":"https://api.github.com/users/lukesneeringer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukesneeringer/subscriptions","organizations_url":"https://api.github.com/users/lukesneeringer/orgs","repos_url":"https://api.github.com/users/lukesneeringer/repos","events_url":"https://api.github.com/users/lukesneeringer/events{/privacy}","received_events_url":"https://api.github.com/users/lukesneeringer/received_events","type":"User","site_admin":false},"assignees":[{"login":"lukesneeringer","id":4346,"avatar_url":"https://avatars3.githubusercontent.com/u/4346?v=3","gravatar_id":"","url":"https://api.github.com/users/lukesneeringer","html_url":"https://github.com/lukesneeringer","followers_url":"https://api.github.com/users/lukesneeringer/followers","following_url":"https://api.github.com/users/lukesneeringer/following{/other_user}","gists_url":"https://api.github.com/users/lukesneeringer/gists{/gist_id}","starred_url":"https://api.github.com/users/lukesneeringer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukesneeringer/subscriptions","organizations_url":"https://api.github.com/users/lukesneeringer/orgs","repos_url":"https://api.github.com/users/lukesneeringer/repos","events_url":"https://api.github.com/users/lukesneeringer/events{/privacy}","received_events_url":"https://api.github.com/users/lukesneeringer/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2017-03-02T17:57:07Z","updated_at":"2017-03-02T18:45:07Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/googleapis/gax-python/pulls/168","html_url":"https://github.com/googleapis/gax-python/pull/168","diff_url":"https://github.com/googleapis/gax-python/pull/168.diff","patch_url":"https://github.com/googleapis/gax-python/pull/168.patch"},"body":"Right now, if our retry logic encounters an exception it does not recognize, it raises `RetryError` which wraps the original exception.\r\n\r\nThis probably is not what we want. The end result is that the `RetryError` will end up [masking the actual exception][1] that needs to be fixed. The developer can still get at it (by calling `.cause.exception()`), but that is not clear or documented anywhere and there is no intuitive reason to try it.\r\n\r\nI assert that it would be better to just raise the original exception, in the original context, and reserve `RetryError` for errors that the retry logic fundamentally understands the nature of (e.g. hitting the max retry limit).\r\n\r\nIf accepted, this PR:\r\n\r\n  * Fixes GoogleCloudPlatform/google-cloud-python#3083\r\n  * Closes GoogleCloudPlatform/google-cloud-python#3087 (as no longer necessary)\r\n\r\n  [1]: https://github.com/GoogleCloudPlatform/python-docs-samples/issues/833"},"comment":{"url":"https://api.github.com/repos/googleapis/gax-python/issues/comments/283741885","html_url":"https://github.com/googleapis/gax-python/pull/168#issuecomment-283741885","issue_url":"https://api.github.com/repos/googleapis/gax-python/issues/168","id":283741885,"user":{"login":"lukesneeringer","id":4346,"avatar_url":"https://avatars3.githubusercontent.com/u/4346?v=3","gravatar_id":"","url":"https://api.github.com/users/lukesneeringer","html_url":"https://github.com/lukesneeringer","followers_url":"https://api.github.com/users/lukesneeringer/followers","following_url":"https://api.github.com/users/lukesneeringer/following{/other_user}","gists_url":"https://api.github.com/users/lukesneeringer/gists{/gist_id}","starred_url":"https://api.github.com/users/lukesneeringer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukesneeringer/subscriptions","organizations_url":"https://api.github.com/users/lukesneeringer/orgs","repos_url":"https://api.github.com/users/lukesneeringer/repos","events_url":"https://api.github.com/users/lukesneeringer/events{/privacy}","received_events_url":"https://api.github.com/users/lukesneeringer/received_events","type":"User","site_admin":false},"created_at":"2017-03-02T18:45:07Z","updated_at":"2017-03-02T18:45:07Z","body":"@jonparrott Could you add thoughts on this question? (Social note: I explicitly confirmed with Jacob that adding another voice here would be instructive.)"}}
{"actor":{"display_login":"lukesneeringer"}}