nodejs / undici

An HTTP/1.1 client, written from scratch for Node.js
https://nodejs.github.io/undici
MIT License
6.08k stars 529 forks source link

fix: retry handler provide invalid body with fetch #3365

Closed climba03003 closed 2 months ago

climba03003 commented 3 months ago

This relates to...

Fixes #3356

Rationale

RetryHandler should buffer the body instead of streaming to the next handler. The reason behind is that the body maybe used by the next handler immediately and leads to stacking multiple invalid response.

Changes

Buffer the body until the response is success or error. It should result on all status code that is not 206 to retain the current behavior.

Features

Bug Fixes

Breaking Changes and Deprecations

I though it may increase in memory usage for non-fetch people, because the payload can be streamed before but not now. But in order to retain the correct behavior for retry, buffering should happen.

Status

climba03003 commented 3 months ago

Test failure seems unrelated to the PR, it failed to download Node.js.

mcollina commented 3 months ago

Yes

climba03003 commented 2 months ago

See #3389