Fix issue with signature mismatch during retries #4050
Merged
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.
Description
With commit 3e8a41b the logic for building the user agent was pushed down the bottom of the request pipeline after signing. So UserAgent is not supposed to be used when creating the signature. The problem is if there a retry attempt and the request is being resigned the UserAgent header value will be left into the headers collection and then will be used for computing the signature. This causes a signature mismatch when the retry gets back down the bottom of the request pipeline and the UserAgent string is modified again after it was used for computing the signature.
The fix is to add UserAgent to the list of headers to ignore when computing the signature.
Testing
Dry Run: pending