Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

fix: range end is zero-indexed #3826

Merged
merged 2 commits into from
Nov 12, 2024
Merged

Conversation

DTrombett
Copy link
Contributor

@DTrombett DTrombett commented Nov 12, 2024

This relates to...

The retry interceptor treats the end parameter of the Range or Content-Range header as 1-indexed (or 0-indexed but exclusive), leading to an error, for example, when the Content-Range header is not present and end is assigned to the value of the Content-Length header:

AssertionError [ERR_ASSERTION]: content-range mismatch
    at RetryHandler.onHeaders (D:\_\node_modules\undici\lib\handler\retry-handler.js:236:7)
    at downstreamOnHeaders (D:\_\node_modules\undici\lib\handler\cache-handler.js:64:53)
    at CacheHandler.onHeaders (D:\_\node_modules\undici\lib\handler\cache-handler.js:112:14)
    at CookieHandler.onHeaders (D:\_\node_modules\http-cookie-agent\dist\undici\cookie_handler.js:43:28)
    at Request.onHeaders (D:\_\node_modules\undici\lib\core\request.js:246:29)
    at Parser.onHeadersComplete (D:\_\node_modules\undici\lib\dispatcher\client-h1.js:612:27)
    at wasm_on_headers_complete (D:\_\node_modules\undici\lib\dispatcher\client-h1.js:141:30)
    at wasm://wasm/00032d9a:wasm-function[10]:0x56f
    at wasm://wasm/00032d9a:wasm-function[20]:0x7d57
    at Parser.execute (D:\_\node_modules\undici\lib\dispatcher\client-h1.js:332:22) {
  generatedMessage: false,
  code: 'ERR_ASSERTION',
  actual: false,
  expected: true,
  operator: '=='
}

Rationale

This PR fixes the issue above by subtracting 1 to Content-Length or the size parameter of the Content-Range header

Changes

Features

Bug Fixes

Breaking Changes and Deprecations

Status

@DTrombett DTrombett changed the title Fix/retry range fix: range end is zero-indexed Nov 12, 2024
Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mcollina mcollina merged commit 2b81fbc into nodejs:main Nov 12, 2024
38 checks passed
github-actions bot pushed a commit that referenced this pull request Nov 12, 2024
* fix: range end is zero-indexed

* tests: update tests for retry handler

(cherry picked from commit 2b81fbc)
Uzlopak pushed a commit that referenced this pull request Nov 12, 2024
* fix: range end is zero-indexed

* tests: update tests for retry handler

(cherry picked from commit 2b81fbc)

Co-authored-by: D Trombett <d@trombett.org>
@DTrombett DTrombett deleted the fix/retry-range branch November 12, 2024 22:54
flakey5 pushed a commit to flakey5/undici that referenced this pull request Nov 14, 2024
* fix: range end is zero-indexed

* tests: update tests for retry handler
@github-actions github-actions bot mentioned this pull request Dec 3, 2024
This was referenced Dec 16, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants