From 76273acef376bce9e262927b6497ebab248ae012 Mon Sep 17 00:00:00 2001 From: Sergei Smelov Date: Fri, 19 Sep 2025 13:29:39 +0200 Subject: [PATCH 1/2] Fix KeyNotFoundException on HttpRequestLatencyListener.OnEventWritten for unknown event sources --- .../Internal/HttpRequestLatencyListener.cs | 4 +++- .../Internal/HttpRequestLatencyListenerTest.cs | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs b/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs index 5d7238ed8a3..4179759df35 100644 --- a/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs +++ b/src/Libraries/Microsoft.Extensions.Http.Diagnostics/Latency/Internal/HttpRequestLatencyListener.cs @@ -49,7 +49,9 @@ public void Enable() internal void OnEventWritten(string eventSourceName, string? eventName) { // If event of interest, add a checkpoint for it. - if (eventName != null && _eventToTokenMap[eventSourceName].TryGetValue(eventName, out var token)) + if (eventName != null + && _eventToTokenMap.TryGetValue(eventSourceName, out var tokenMap) + && tokenMap.TryGetValue(eventName, out var token)) { LatencyContext.Get()?.AddCheckpoint(token); } diff --git a/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs b/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs index fa91daa1c3e..e35b71ede75 100644 --- a/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs +++ b/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs @@ -191,4 +191,19 @@ public void HttpRequestLatencyListener_OnEventWritten_AddsCheckpoints_Http() lc.Verify(a => a.AddCheckpoint(It.IsAny()), Times.Exactly(numHttpEvents + numSocketEvents + numDnsEvents)); } + + [Fact] + public void HttpRequestLatencyListener_OnEventWritten_DoesNotAddCheckpoints_UnknownEvent() + { + var lcti = HttpMockProvider.GetTokenIssuer(); + var lc = HttpMockProvider.GetLatencyContext(); + var context = new HttpClientLatencyContext(); + context.Set(lc.Object); + + using var listener = HttpMockProvider.GetListener(context, lcti.Object); + + listener.OnEventWritten("System.Runtime", "EventCounters"); + + lc.Verify(a => a.AddCheckpoint(It.IsAny()), Times.Never); + } } From b50595ba4e49fe2535b7ca001241d893eed64c2d Mon Sep 17 00:00:00 2001 From: Darius Letterman Date: Tue, 23 Sep 2025 10:33:56 +0200 Subject: [PATCH 2/2] Update test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Latency/Internal/HttpRequestLatencyListenerTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs b/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs index e35b71ede75..6b384eae928 100644 --- a/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs +++ b/test/Libraries/Microsoft.Extensions.Http.Diagnostics.Tests/Latency/Internal/HttpRequestLatencyListenerTest.cs @@ -193,7 +193,7 @@ public void HttpRequestLatencyListener_OnEventWritten_AddsCheckpoints_Http() } [Fact] - public void HttpRequestLatencyListener_OnEventWritten_DoesNotAddCheckpoints_UnknownEvent() + public void HttpRequestLatencyListener_OnEventWritten_DoesNotAddCheckpoints_UnknownEventSource() { var lcti = HttpMockProvider.GetTokenIssuer(); var lc = HttpMockProvider.GetLatencyContext();