Skip to content

fetch: let an explicit timeout extend the socket idle deadline - #33647

Merged
Jarred-Sumner merged 7 commits into
mainfrom
claude/fetch-timeout-honors-idle
Jul 8, 2026
Merged

fetch: let an explicit timeout extend the socket idle deadline#33647
Jarred-Sumner merged 7 commits into
mainfrom
claude/fetch-timeout-honors-idle

h2: floor session idle timer at global default when a {timeout:false}…

9782070
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Jul 7, 2026 in 22m 24s

Code review found 2 potential issues

Found 2 candidates, confirmed 2. See review comments for details.

Details

Severity Count
🔴 Important 0
🟡 Nit 2
🟣 Pre-existing 0
Severity File:Line Issue
🟡 Nit src/http/h2_client/ClientSession.rs:542-545 h2 rearm_timeout floor ineffective when global idle timeout is 0

Annotations

Check warning on line 545 in src/http/h2_client/ClientSession.rs

See this annotation in the file changed.

@claude claude / Claude Code Review

h2 rearm_timeout floor ineffective when global idle timeout is 0

The floor at `crate::idle_timeout_seconds()` is a no-op when `BUN_CONFIG_HTTP_IDLE_TIMEOUT=0`: `want.max(0) == want`, so a `{timeout:false}` stream is still armed at (and killed by) a coalesced sibling's short explicit `{timeout:N}`. Pre-PR the same session armed at `idle_timeout_seconds()=0` → `set_timeout(0)` → disarmed, so this is a narrow regression under global=0. Consider disarming when `any_disabled && idle_timeout_seconds() == 0` (or having `any_disabled` contribute an unbounded sentinel