git-lfs/tq
Fabio Huser a3ecbcc7f6 Fix 429 retry-after handling of the LFS batch API endpoint
While the 429 retry-after HTTP error handling for the storage endpoint works
just as expected, the same was not true for batch API endpoint. In case of a
429 error, the call to the batch API endpoint would be retried as well as the
`retry-after` HTTP header honoured correctly, but the LFS command would still
exit with a generic `LFS: Error` message. This was caused by the fact, that
while the retry-able error from the `Batch` method was correctly overwritten by
`nil` in case it of a retry, it would finally again be converted into a
retry-able error and hence be no longer `nil`. This would lead to a bubble-up of
the original 429 retry-able HTTP error to the final error check, altough the
exact operation was successfully retried. Furthermore, the overwrite with
`nil` during correct handling of the first object caused all subsequent objects
to fail and hence never being enqueued for retrial. This was solved by
removing the immediate overwrite by `nil` in case of a retry-able-later
error and doing the final error conversion based on the whole batch
result instead of a single object result.
2021-08-15 10:18:32 +02:00
..
schemas tq,lfsapi/ssh: convert int64 to int 2017-04-05 14:46:45 -06:00
adapterbase.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
api_test.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
api.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
basic_download.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
basic_upload.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
custom_test.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
custom.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
errors_test.go tq/errors: implement MalformedObjectError 2017-03-24 14:36:59 -06:00
errors.go tq/errors: implement MalformedObjectError 2017-03-24 14:36:59 -06:00
manifest_test.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
manifest.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
meter.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
ssh.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
transfer_queue_test.go tq: add exponential backoff for retries 2020-04-15 14:10:16 -07:00
transfer_queue.go Fix 429 retry-after handling of the LFS batch API endpoint 2021-08-15 10:18:32 +02:00
transfer_test.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
transfer.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
tus_upload.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
verify_test.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00
verify.go all: update go.mod module path with explicit v2 2021-08-09 23:18:38 -07:00