[release/6.0] Add additional trace to HttpConnectionPool#66958
[release/6.0] Add additional trace to HttpConnectionPool#66958carlossanlop merged 1 commit intodotnet:release/6.0from
Conversation
|
Tagging subscribers to this area: @dotnet/ncl Issue DetailsBackport of #66605 to release/6.0 Customer Impact.NET 6 introduced changes to For example, hanged "pending" HTTP/1.1 connection issues (i.e. the reasons why new connections were not created) in The additional trace should help troubleshoot why new connection was not created and why the pending connection failed. TestingPresence of new traces verified by customer deploying private bits and by a test app. RiskLow. This is private-telemetry-only (
|
|
All CI failures are not related to the change.
|
Backport of #66605 to release/6.0
Customer Impact
.NET 6 introduced changes to
HttpConnectionPoolthat decouples HTTP connection creation from a request that initiated it. This made issues related to connection creation harder to troubleshoot.We had recently 2 investigations which took unnecessarily long to root cause due to suboptimal logging. As a result, we want to add additional logging to make such investigations in future easier for us (Networking team) and for the customers (self-diagnostics).
For example on of the investigations was about hanged "pending" HTTP/1.1 connection issues (i.e. the reasons why new connections were not created) in
HttpConnectionPool. The issue manifests as growing number of timeouted requests. It is not easy to link a timeouted request (esp. with a small timeout) to a connection that was created 3 minutes ago but still is not connected (Linux default connection timeout is more than 3 minutes). The trace of connection being initiated may even not be captured, if tracing was turned on when the visible trouble occur. There were no traces of the state ofHttpConnectionPool, e.g. number of pending connections, so it is unclear from existing traces why the pool decided not to create a connection.The additional trace should help troubleshoot why new connection was not created and why the pending connection failed.
Testing
Presence of new traces verified by customer deploying private bits and by a test app.
Risk
Low. This is private-telemetry-only (
Private.InternalDiagnostics.System.Net.Http) change.