Repository navigation
Read upload responses to completion - #59
Merged
kavehtehrani merged 1 commit intoOct 26, 2026
Merged
Conversation
Co-authored-by: Codex <noreply@openai.com>
Contributor
Author
|
Hi @kavehtehrani, please review #59. It fixes premature upload connection closures and includes a regression test plus measurements from a dual-WAN setup. |
Owner
|
@agoodkind merged and released in v1.0.11. tx for the pr. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
Upload tests can underuse available bandwidth because the worker discards successful HTTP responses without consuming their bodies. For HTTP/1.1, Hyper closes the connection if its cleanup cannot immediately finish reading the reply.
In a dual-WAN test, this repeatedly closed connections on one WAN and concentrated subsequent uploads on the other.
Changes
Read each successful upload response to completion before starting the next request. Treat response-body read errors as upload failures.
Testing
A regression test runs the production upload worker against a local HTTP server that delays the final response chunk and checks connection reuse.
Manual macOS tests on v1.0.8 alternated original and corrected builds using IPv4, six workers, and 5 MB uploads:
Packet captures and temporary HTTP-library instrumentation confirmed that the original cleanup closed connections while reply completion remained pending. Reading complete responses prevented those early closures in the comparison runs.
Clippy with Rust 1.95.0 reports the same 13 errors in existing networking and TUI code on this branch and unchanged upstream main.