[pull] master from microsoft:master#72
Merged
pull[bot] merged 4 commits intocgallred:masterfrom Apr 1, 2026
Merged
Conversation
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
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
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 : )