Title: retry ChunkedEncodingError by default · Issue #235 · googleapis/python-api-core · GitHub
Open Graph Title: retry ChunkedEncodingError by default · Issue #235 · googleapis/python-api-core
X Title: retry ChunkedEncodingError by default · Issue #235 · googleapis/python-api-core
Description: Per psf/requests#4771, ChunkedEncodingError is a kind of transport-layer error. They don't classify it as a connection error because it's caused by a "misbehaving server", but in our case it's likely due to a transient issue somewhere in...
Open Graph Description: Per psf/requests#4771, ChunkedEncodingError is a kind of transport-layer error. They don't classify it as a connection error because it's caused by a "misbehaving server", but in our case it's like...
X Description: Per psf/requests#4771, ChunkedEncodingError is a kind of transport-layer error. They don't classify it as a connection error because it's caused by a "misbehaving server", but in ...
Opengraph URL: https://github.com/googleapis/python-api-core/issues/235
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"retry ChunkedEncodingError by default","articleBody":"Per https://github.com/psf/requests/issues/4771, ChunkedEncodingError is a kind of transport-layer error. They don't classify it as a connection error because it's caused by a \"misbehaving server\", but in our case it's likely due to a transient issue somewhere in the server stack. Retrying is likely to help.\r\n\r\n#### Stack trace\r\n\r\nSee: https://github.com/googleapis/python-bigquery-storage/issues/242\r\n\r\n```\r\n[POST]\r\nTraceback (most recent call last):\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/urllib3/response.py\", line 696, in _update_chunk_length\r\n self.chunk_left = int(line, 16)\r\n ValueError: invalid literal for int() with base 16: b''\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/urllib3/response.py\", line 436, in _error_catcher\r\n yield\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/urllib3/response.py\", line 763, in read_chunked\r\n self._update_chunk_length()\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/urllib3/response.py\", line 700, in _update_chunk_length\r\n raise httplib.IncompleteRead(line) \r\n http.client.IncompleteRead: IncompleteRead(0 bytes read)\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/requests/models.py\", line 751, in generate\r\n for chunk in self.raw.stream(chunk_size, decode_content=True):\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/urllib3/response.py\", line 571, in stream\r\n for line in self.read_chunked(amt, decode_content=decode_content):\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/urllib3/response.py\", line 792, in read_chunked\r\n self._original_response.close()\r\n File \"/opt/python3.9/lib/python3.9/contextlib.py\", line 135, in __exit__\r\n self.gen.throw(type, value, traceback)\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/urllib3/response.py\", line 454, in _error_catcher\r\n raise ProtocolError(\"Connection broken: %r\" % e, e)\r\n urllib3.exceptions.ProtocolError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))\r\n\r\nDuring handling of the above exception, another exception occurred:\r\n\r\nTraceback (most recent call last):\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 2447, in wsgi_app\r\n response = self.full_dispatch_request()\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 1952, in full_dispatch_request\r\n rv = self.handle_user_exception(e)\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 1821, in handle_user_exception\r\n reraise(exc_type, exc_value, tb)\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/_compat.py\", line 39, in reraise\r\n raise value\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 1950, in full_dispatch_request\r\n rv = self.dispatch_request()\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/flask/app.py\", line 1936, in dispatch_request\r\n return self.view_functions[rule.endpoint](**req.view_args)\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/functions_framework/__init__.py\", line 152, in view_func\r\n function(data, context)\r\n File \"/workspace/common/functions.py\", line 61, in wrapper\r\n raise e\r\n File \"/workspace/common/functions.py\", line 54, in wrapper\r\n response = wrapped_func(*args, **kwargs)\r\n File \"/workspace/main.py\", line 533, in controller\r\n status = create_files(contex_bdp)\r\n File \"/workspace/main.py\", line 346, in create_files\r\n for row in result:\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/api_core/page_iterator.py\", line 214, in _items_iter\r\n for page in self._page_iter(increment=False):\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/api_core/page_iterator.py\", line 253, in _page_iter\r\n page = self._next_page()\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/api_core/page_iterator.py\", line 382, in _next_page\r\n response = self._get_next_page_response()\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/bigquery/table.py\", line 1541, in _get_next_page_response\r\n return self.api_request(\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/bigquery/client.py\", line 686, in _call_api\r\n return call()\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/api_core/retry.py\", line 285, in retry_wrapped_func\r\n return retry_target(\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/api_core/retry.py\", line 188, in retry_target\r\n return target()\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/_http.py\", line 473, in api_request\r\n response = self._make_request(\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/_http.py\", line 337, in _make_request\r\n return self._do_request(\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/cloud/_http.py\", line 375, in _do_request\r\n return self.http.request(\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/google/auth/transport/requests.py\", line 482, in request\r\n response = super(AuthorizedSession, self).request(\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/requests/sessions.py\", line 530, in request\r\n resp = self.send(prep, **send_kwargs)\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/requests/sessions.py\", line 685, in send\r\n r.content\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/requests/models.py\", line 829, in content\r\n self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''\r\n File \"/layers/google.python.pip/pip/lib/python3.9/site-packages/requests/models.py\", line 754, in generate\r\n raise ChunkedEncodingError(e) requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))\r\n```\r\n","author":{"url":"https://github.com/tswast","@type":"Person","name":"tswast"},"datePublished":"2021-07-23T14:47:02.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/235/python-api-core/issues/235"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:ef464348-d12d-372c-16d2-b7d977ca084a |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E47A:CD446:B53B9D:FF9DAC:6A4E87C0 |
| html-safe-nonce | 0fa4f62c53d3aa0e83f9b8bb4290c377031ccda496decd51be9f0d25d6d29d7c |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNDdBOkNENDQ2OkI1M0I5RDpGRjlEQUM6NkE0RTg3QzAiLCJ2aXNpdG9yX2lkIjoiMTIxMDIzNDQ4MTk5NjEwNTY2NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 73fa8b73df59f7f1de3ccd60a5a6b0c4d7135c8b04b989ce90f0facdcf7d29ed |
| hovercard-subject-tag | issue:951646256 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/googleapis/python-api-core/235/issue_layout |
| twitter:image | https://opengraph.githubassets.com/919263f614d791387fa7d1b5b56c7420fe081f4f5feb4d3bcd632b451502c4a4/googleapis/python-api-core/issues/235 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/919263f614d791387fa7d1b5b56c7420fe081f4f5feb4d3bcd632b451502c4a4/googleapis/python-api-core/issues/235 |
| og:image:alt | Per psf/requests#4771, ChunkedEncodingError is a kind of transport-layer error. They don't classify it as a connection error because it's caused by a "misbehaving server", but in our case it's like... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | tswast |
| hostname | github.com |
| expected-hostname | github.com |
| None | 41b6ab3ba6d20a71766ac245b5a4a94c6fc672a9cd4da7d44c1b33ab8bf6a21c |
| turbo-cache-control | no-preview |
| go-import | github.com/googleapis/python-api-core git https://github.com/googleapis/python-api-core.git |
| octolytics-dimension-user_id | 16785467 |
| octolytics-dimension-user_login | googleapis |
| octolytics-dimension-repository_id | 226992456 |
| octolytics-dimension-repository_nwo | googleapis/python-api-core |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 226992456 |
| octolytics-dimension-repository_network_root_nwo | googleapis/python-api-core |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | e6a744804e8e70f97b4d5a18a94dcc63db22f97a |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width