Properly handle HTTP 308 errors from GCS
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 4.7k
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 205
Description
We currently retry these errors, but we could do better by partially retrying as suggested by GCS spec: [https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload](https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload)
We can hit this error in various places where we connect to GCS (for example, file-based source/sink, jar staging for DataflowRunner).
Imported from Jira [BEAM-4133](https://issues.apache.org/jira/browse/BEAM-4133). Original Jira may contain additional context.
Reported by: chamikara.
Contributor guide
Research direction
Start with the GCS resumable-upload specification linked in the issue, then locate the retry paths used by file-based sources and sinks and by DataflowRunner jar staging. Check how HTTP 308 responses are currently retried; done means these responses are handled with the partial-retry behavior required by the GCS specification across the affected connection paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- google-cloud, java
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100