PDE-2826 fix(core): backpressure issue with node-fetch patch #461
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.
Using node-fetch 2.6.6 (Node.js 14), this program hangs on my laptop:
When you pass a
fetch.Request
object tofetch()
,fetch()
copies theRequest
object. And if theRequest
has a streamable body, theRequest
constructor clones the body by teeing the stream into twoPassThrough
streams. Then we read one of thePassThrough
stream (A) and not the other (B). This causes B's internal buffer to fill up, so Node.js has to pause reading from the source until someone consumes B's buffer.To fix, we add that someone to consume B. Right after the
fetch(uploadRequest)
call, we pipeuploadRequest.body
to/dev/null
:And that solves the hanging problem.
This PR does something similar with our node-fetch patch.