Skip to content

Commit 4a5b77e

Browse files
amcaseywtgodbe
authored andcommitted
Address PR feedback
1 parent 5f7c4fc commit 4a5b77e

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ internal partial class Http2Connection : IHttp2StreamLifetimeHandler, IHttpHeade
3333
private const PseudoHeaderFields _mandatoryRequestPseudoHeaderFields =
3434
PseudoHeaderFields.Method | PseudoHeaderFields.Path | PseudoHeaderFields.Scheme;
3535

36-
private const string EnhanceYourCalmMaximumCountProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.EnhanceYourCalmCount";
36+
private const string MaximumEnhanceYourCalmCountProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.MaxEnhanceYourCalmCount";
3737
private const string MaximumFlowControlQueueSizeProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.MaxConnectionFlowControlQueueSize";
3838

39-
private static readonly int _enhanceYourCalmMaximumCount = GetEnhanceYourCalmMaximumCount();
39+
private static readonly int _enhanceYourCalmMaximumCount = GetMaximumEnhanceYourCalmCount();
4040

41-
private static int GetEnhanceYourCalmMaximumCount()
41+
private static int GetMaximumEnhanceYourCalmCount()
4242
{
43-
var data = AppContext.GetData(EnhanceYourCalmMaximumCountProperty);
43+
var data = AppContext.GetData(MaximumEnhanceYourCalmCountProperty);
4444
if (data is int count)
4545
{
4646
return count;
@@ -186,7 +186,7 @@ public Http2Connection(HttpConnectionContext context)
186186
_serverSettings.InitialWindowSize = (uint)http2Limits.InitialStreamWindowSize;
187187

188188
_maximumFlowControlQueueSize = ConfiguredMaximumFlowControlQueueSize is null
189-
? 4 * http2Limits.MaxStreamsPerConnection
189+
? 4 * http2Limits.MaxStreamsPerConnection // 4 is a magic number to give us some padding above the expected maximum size
190190
: (int)ConfiguredMaximumFlowControlQueueSize;
191191

192192
if (IsMaximumFlowControlQueueSizeEnabled && _maximumFlowControlQueueSize < http2Limits.MaxStreamsPerConnection)
@@ -1224,6 +1224,8 @@ private void AbortStream(int streamId, IOException error)
12241224
void IRequestProcessor.Tick(DateTimeOffset now)
12251225
{
12261226
Input.CancelPendingRead();
1227+
// We count EYCs over a window of a given length to avoid flagging short-lived bursts.
1228+
// At the end of each window, reset the count.
12271229
if (IsEnhanceYourCalmEnabled && ++_tickCount % EnhanceYourCalmTickWindowCount == 0)
12281230
{
12291231
Interlocked.Exchange(ref _enhanceYourCalmCount, 0);

src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -395,23 +395,23 @@ public void Http3GoAwayStreamId(string connectionId, long goAwayStreamId)
395395
Http3GoAwayStreamId(_http3Logger, connectionId, goAwayStreamId);
396396
}
397397

398-
[LoggerMessage(54, LogLevel.Debug, @"Connection id ""{ConnectionId}"" aborted since at least ""{Count}"" ENHANCE_YOUR_CALM responses were required per second.", EventName = "Http2TooManyEnhanceYourCalms")]
398+
[LoggerMessage(54, LogLevel.Debug, @"Connection id ""{ConnectionId}"" aborted since at least {Count} ENHANCE_YOUR_CALM responses were recorded per second.", EventName = "Http2TooManyEnhanceYourCalms")]
399399
private static partial void Http2TooManyEnhanceYourCalms(ILogger logger, string connectionId, int count);
400400

401401
public void Http2TooManyEnhanceYourCalms(string connectionId, int count)
402402
{
403403
Http2TooManyEnhanceYourCalms(_http2Logger, connectionId, count);
404404
}
405405

406-
[LoggerMessage(55, LogLevel.Debug, @"Connection id ""{ConnectionId}"" exceeded the output flow control maximum queue size of ""{Count}"".", EventName = "Http2FlowControlQueueOperationsExceeded")]
406+
[LoggerMessage(55, LogLevel.Debug, @"Connection id ""{ConnectionId}"" exceeded the output flow control maximum queue size of {Count}.", EventName = "Http2FlowControlQueueOperationsExceeded")]
407407
private static partial void Http2FlowControlQueueOperationsExceeded(ILogger logger, string connectionId, int count);
408408

409409
public void Http2FlowControlQueueOperationsExceeded(string connectionId, int count)
410410
{
411411
Http2FlowControlQueueOperationsExceeded(_http3Logger, connectionId, count);
412412
}
413413

414-
[LoggerMessage(56, LogLevel.Debug, @"Connection id ""{ConnectionId}"" configured maximum flow control queue size ""{Actual}"" is less than the maximum streams per connection ""{Expected}"" - increasing to match.", EventName = "Http2FlowControlQueueMaximumTooLow")]
414+
[LoggerMessage(56, LogLevel.Debug, @"Connection id ""{ConnectionId}"" configured maximum flow control queue size {Actual} is less than the maximum streams per connection {Expected}. Increasing configured value to {Expected}.", EventName = "Http2FlowControlQueueMaximumTooLow")]
415415
private static partial void Http2FlowControlQueueMaximumTooLow(ILogger logger, string connectionId, int expected, int actual);
416416

417417
public void Http2FlowControlQueueMaximumTooLow(string connectionId, int expected, int actual)

0 commit comments

Comments
 (0)