Skip to content

Bound blob downloads with per-source timeouts#7185

Draft
ajpallares wants to merge 9 commits into
pallares/api-sources-timeoutsfrom
pallares/blob-source-timeouts
Draft

Bound blob downloads with per-source timeouts#7185
ajpallares wants to merge 9 commits into
pallares/api-sources-timeoutsfrom
pallares/blob-source-timeouts

Conversation

@ajpallares

@ajpallares ajpallares commented Jul 10, 2026

Copy link
Copy Markdown
Member

Motivation

Blob downloads had no per-request timeout (URLSession.shared defaults to ~60s), so a slow or failing blob source stretched getOfferings latency across the source-failover loop.

Description

  • Bound each blob-source attempt via PR Re-tier HTTP request timeouts around per-host memory #7179's shared timeout manager and its no-fallback tier (15s base, 5s if that host timed out in the last 10 min), keyed by the blob source host.
  • Record per-host results so a flaky source fails fast on re-hit; a timeout still advances to the next source as before.

Stacks on #7179.

Co-authored-by: Cursor <cursoragent@cursor.com>
ajpallares and others added 4 commits July 10, 2026 12:27
Require the downloader on RemoteConfigBlobFetcher and drop its timeoutManager
parameter, since the manager is a dependency of the downloader. Also drop the
nil default on Backend's timeoutManager so callers pass it explicitly.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@ajpallares

Copy link
Copy Markdown
Member Author

@RCGitBot please test

ajpallares and others added 4 commits July 15, 2026 11:57
…nto pallares/blob-source-timeouts

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	Sources/Networking/RemoteConfigBlobDownloader.swift
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant