[ 
https://issues.apache.org/jira/browse/BEAM-12567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17372925#comment-17372925
 ] 

Valentyn Tymofieiev commented on BEAM-12567:
--------------------------------------------

Took at closer look at apitools, the retry logic is in: 
https://github.com/google/apitools/blob/master/apitools/base/py/http_wrapper.py#L215-L225
 and 5xx errors generate an error, which triggers to retry the request in 
https://github.com/google/apitools/blob/70b500f2eb89beda26e68018ab279c53a871b3a4/apitools/base/py/http_wrapper.py#L353

However, this logic does not retry on 408 errors, and a retry within Beam could 
help address that.

> Beam should retry failing GCS uploads 
> --------------------------------------
>
>                 Key: BEAM-12567
>                 URL: https://issues.apache.org/jira/browse/BEAM-12567
>             Project: Beam
>          Issue Type: New Feature
>          Components: io-py-gcp
>            Reporter: Valentyn Tymofieiev
>            Priority: P2
>              Labels: starter
>
> Sometimes GCS upload initiated by Beam stager fail due to a retriable error 
> (such as 503), however Beam code and the underlying apitools-based storage 
> client do not retry. 
> We should retry some reasonable amount of times with a backoff logic, either 
> on all or (better) on retriable errors.
> Code pointers:
> https://github.com/apache/beam/blob/master/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py#L553-L554
> and similar:
> https://github.com/apache/beam/blob/c026c9fa00239a6f3650a6fa69f3aa864f692afe/sdks/python/apache_beam/io/gcp/gcsio.py#L635-L639



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to