fix(node-http-handler): Write request body if 100 Continue response takes more than 1 second #1505
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.
Fixes the issue reported here: aws/aws-sdk-js-v3#6805
Description of changes:
When the client makes a request with the
Expect: 100-continue
header, it will wait for 1000ms to get either a100 Continue
response or an error. If it does not receive any response within the 1000ms, the intention seems to be that the client should write the body anyway. This behavior broke in #1459 because in the timeout caseresolve
is called with no arguments, which means thatsendBody
becomes undefined and the body is never sent. Even if the server returns a 100 Continue after 1001ms, the client is no longer waiting for that response and instead just idles until eventually the server returns an error.This change restores the previous behavior, where the client will send the body after waiting 1000ms.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.