Skip to content

fetch: encode FetchTasklet's cross-thread ownership in the type system - #31745

Open
alii wants to merge 20 commits into
mainfrom
ali/fetch-lifetime-clarity
Open

fetch: encode FetchTasklet's cross-thread ownership in the type system#31745
alii wants to merge 20 commits into
mainfrom
ali/fetch-lifetime-clarity

[autofix.ci] apply automated fixes

eab71d3
Select commit
Loading
Failed to load commit list.
Claude / Claude Code Review completed Jun 4, 2026 in 19m 16s

Code review found 1 potential issue

Found 5 candidates, confirmed 1. See review comments for details.

Details

Severity Count
🔴 Important 0
🟡 Nit 1
🟣 Pre-existing 0
Severity File:Line Issue
🟡 Nit src/http/HTTPThread.rs:1078-1082 callback's is_shutting_down branch doesn't balance sink/drain refs

Annotations

Check warning on line 1082 in src/http/HTTPThread.rs

See this annotation in the file changed.

@claude claude / Claude Code Review

callback's is_shutting_down branch doesn't balance sink/drain refs

`release_at_shutdown` now balances `sink_ref_held` / `queued_drain_tasks`, but the parallel shutdown branch in `FetchTasklet::callback` (FetchTasklet.rs:2608–2618, `is_done` path) still releases only the two baseline refs. If a streaming-upload request's final callback fires in the window between `is_shutting_down` flipping true and `SHUTDOWN_REQUESTED` being observed (up to ~10s — `terminate_all_workers_and_wait(10_000)` runs in between), `on_async_http_callback_raw` removes the entry from `in_