This repository has been archived by the owner on Jan 15, 2024. It is now read-only.
Fix retry mechanism not sending body if first request fails before reading the body #150
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In #109 we added the capability to have a retry mechanism for internal server or too many requests errors. While the logic was good, it had a very hard to reproduce bug in that if the call to
c.client.Do
fails before reading the request body (e.g. a network connection issue) then all the subsequent requests will be sent with an empty body becausebodyBuffer
never gets populated.This PR forces to always create a slice of bytes holding the request body, passing a new
bytes.Buffer
toc.client.Do
.