Title: `retry` parameter ignored in the `operation.result(retry=retry)` call · Issue #458 · googleapis/python-api-core · GitHub
Open Graph Title: `retry` parameter ignored in the `operation.result(retry=retry)` call · Issue #458 · googleapis/python-api-core
X Title: `retry` parameter ignored in the `operation.result(retry=retry)` call · Issue #458 · googleapis/python-api-core
Description: Environment details OS type and version: Debian 5.18.16 Python version: Python 3.10.7 pip version: pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) google-api-core version: 2.10.1 Steps to reproduce Use any GCP API that r...
Open Graph Description: Environment details OS type and version: Debian 5.18.16 Python version: Python 3.10.7 pip version: pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) google-api-core version: 2.10.1 S...
X Description: Environment details OS type and version: Debian 5.18.16 Python version: Python 3.10.7 pip version: pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) google-api-core version: 2.10.1 S...
Opengraph URL: https://github.com/googleapis/python-api-core/issues/458
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"`retry` parameter ignored in the `operation.result(retry=retry)` call","articleBody":"#### Environment details\r\n\r\n - OS type and version: `Debian 5.18.16`\r\n - Python version: `Python 3.10.7`\r\n - pip version: `pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)`\r\n - google-api-core version: `2.10.1`\r\n\r\n#### Steps to reproduce\r\n\r\n 1. Use any GCP API that returns LRO\r\n 2. Use `operation.result` method call with custom `retry` parameter\r\n 3. This method will return ~60 seconds after actual operation finishes, while it should not have more than 10 seconds of overhead with custom retry policy (see below)\r\n\r\n#### Code example\r\n\r\n```python\r\nfrom google.api_core import retry\r\nfrom google.cloud import dataproc_v1\r\nfrom google.api_core.client_options import ClientOptions\r\n\r\nimport time\r\n\r\nproject = '. . .'\r\nregion = 'us-central1'\r\n\r\n# Create Dataproc batch\r\nclient_options = ClientOptions(api_endpoint=\"{}-dataproc.googleapis.com:443\".format(region))\r\nclient = dataproc_v1.BatchControllerClient(client_options=client_options)\r\nbatch = dataproc_v1.Batch()\r\nbatch.spark_batch.main_class = 'org.apache.spark.examples.SparkPi'\r\nbatch.spark_batch.jar_file_uris = [\r\n 'file:///usr/lib/spark/examples/jars/spark-examples.jar',\r\n]\r\nbatch.spark_batch.args = ['1']\r\nbatch.runtime_config.properties = {\r\n 'spark.executor.instances': '2',\r\n}\r\n\r\nparent = f\"projects/{project}/locations/{region}\"\r\nrequest = dataproc_v1.CreateBatchRequest(\r\n parent=parent, # type: ignore\r\n batch=batch, # type: ignore\r\n)\r\n\r\n# Make the request\r\nprint(\"Creating batch\")\r\noperation = client.create_batch(request=request) # type: ignore\r\nprint(\"Batch created\")\r\n\r\n# This takes quite a while, waiting on GCP response to resolve\r\nretry = retry.Retry(initial=10, maximum=10, multiplier=1.0, deadline=600)\r\nstart = time.time()\r\nresponse = operation.result(retry=retry)\r\nprint(\"Batch finished\")\r\nprint(f\"Took {time.time() - start} seconds to finish batch job\")\r\nprint(response)\r\n```\r\n\r\nAfter replacing `response = operation.result(retry=retry)` call with custom wait/retry logic operation completion will be detected as expected:\r\n\r\n```python\r\nwhile not operation.done(retry=None):\r\n time.sleep(10)\r\nresponse = operation.metadata\r\n```","author":{"url":"https://github.com/medb","@type":"Person","name":"medb"},"datePublished":"2022-10-04T03:35:33.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/458/python-api-core/issues/458"}
| 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:5063fc43-5e7e-cb4e-50d6-758c3e07170d |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B478:316DD0:9ACF10:E09E35:6A4E189E |
| html-safe-nonce | 883a633d025f7280767195599d3de5b262a146876a93f9e4be5193da19967d90 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNDc4OjMxNkREMDo5QUNGMTA6RTA5RTM1OjZBNEUxODlFIiwidmlzaXRvcl9pZCI6IjY4ODEwNzYxOTQ1Nzk0NTQxMTAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | ce1ba918f2300b1eee475fed3ec21ced90256c7224a1482517d299873be8ee83 |
| hovercard-subject-tag | issue:1395616472 |
| 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/458/issue_layout |
| twitter:image | https://opengraph.githubassets.com/c28500facf2505d07dafcdbd2b56f4cbe275b6fed752a433c21a22fda2261d62/googleapis/python-api-core/issues/458 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/c28500facf2505d07dafcdbd2b56f4cbe275b6fed752a433c21a22fda2261d62/googleapis/python-api-core/issues/458 |
| og:image:alt | Environment details OS type and version: Debian 5.18.16 Python version: Python 3.10.7 pip version: pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) google-api-core version: 2.10.1 S... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | medb |
| hostname | github.com |
| expected-hostname | github.com |
| None | 030096ee0db095447bfe77409d33bfac127ca7128299c58deef27c52eaa1b1f0 |
| 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 | ea9187571e3edc5f2780f750631138669441ca50 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width