Skip to content

[pull] master from microsoft:master#72

Merged
pull[bot] merged 4 commits intocgallred:masterfrom
microsoft:master
Apr 1, 2026
Merged

[pull] master from microsoft:master#72
pull[bot] merged 4 commits intocgallred:masterfrom
microsoft:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 1, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

tyrielv added 4 commits March 31, 2026 11:49
Three related resilience improvements for HTTP connection pool management:

1. Circuit breaker (RetryCircuitBreaker.cs): After 15 consecutive failures,
   RetryWrapper.Invoke() fails fast for 30 seconds instead of queueing
   5-minute backoff retries. This prevents unbounded retry storms that
   worsen resource exhaustion.

2. Connection pool timeout (HttpRequestor.cs): The semaphore wait for an
   available connection is now bounded to 30 seconds. Previously it waited
   indefinitely, with observed waits of 298 seconds. Timeout returns
   ServiceUnavailable with shouldRetry=true for proper retry handling.

3. Pool contention telemetry (HttpRequestor.cs): A warning-level event is
   logged when acquiring a connection takes >100ms, making pool pressure
   visible in telemetry without aggregating info-level events.

Work item: 60167591

Assisted-by: Claude Opus 4.6
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>
Adds a ConcurrentDictionary<string, Lazy<DownloadAndSaveObjectResult>> to
GVFSGitObjects so only one download runs per objectId at a time. Concurrent
callers share the result via the Lazy<T> pattern. The entry is removed after
completion using value-aware removal (ICollection<KVP>.Remove) to prevent an
ABA race where a straggling thread's finally could remove a newer Lazy
created by a later wave of requests.

Assisted-by: Claude Opus 4.6
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>
Coalesce concurrent download requests for the same object
…eout

Add circuit breaker, connection pool timeout, and contention telemetry
@pull pull bot locked and limited conversation to collaborators Apr 1, 2026
@pull pull bot added the ⤵️ pull label Apr 1, 2026
@pull pull bot merged commit 4b91931 into cgallred:master Apr 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant