You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@pekko.apache.org by "pjfanning (via GitHub)" <gi...@apache.org> on 2024/01/02 19:15:29 UTC

[PR] [DRAFT] Http2 frame type throttle [incubator-pekko-http]

pjfanning opened a new pull request, #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394

   (no comment)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] [DRAFT] Http2 frame type throttle [incubator-pekko-http]

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1439982745


##########
http-core/src/main/scala/org/apache/pekko/http/scaladsl/settings/Http2ServerSettings.scala:
##########
@@ -124,6 +137,10 @@ object Http2ServerSettings extends SettingsCompanion[Http2ServerSettings] {
       logFrames: Boolean,
       pingInterval: FiniteDuration,
       pingTimeout: FiniteDuration,
+      frameTypeThrottleFrameTypes: Seq[String],

Review Comment:
   This should be a `Set`



##########
http-core/src/main/resources/reference.conf:
##########
@@ -307,6 +307,17 @@ pekko.http {
       # Fail the connection if a sent ping is not acknowledged within this timeout.
       # When zero the ping-interval is used, if set the value must be evenly divisible by less than or equal to the ping-interval.
       ping-timeout = 0s
+
+      frame-type-throttle {
+        # Configure the throttle for non-data frame types (https://github.com/apache/incubator-pekko-http/issues/332)
+        # supported frame-types for throttlng are:
+        # reset, headers, continuation, go-away, priority, ping, push-promise, window-update

Review Comment:
   While we are here, should we documented a suggested list of frame types and/or should we create an alias for all of them?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] [DRAFT] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1440348762


##########
http-core/src/main/resources/reference.conf:
##########
@@ -307,6 +307,17 @@ pekko.http {
       # Fail the connection if a sent ping is not acknowledged within this timeout.
       # When zero the ping-interval is used, if set the value must be evenly divisible by less than or equal to the ping-interval.
       ping-timeout = 0s
+
+      frame-type-throttle {
+        # Configure the throttle for non-data frame types (https://github.com/apache/incubator-pekko-http/issues/332)
+        # supported frame-types for throttlng are:
+        # reset, headers, continuation, go-away, priority, ping, push-promise, window-update

Review Comment:
   I'd prefer not to provide too much guidance. If users want to protect against CVE-2023-44487, they just need `frame-types = ["reset"]`. In @jrudolph's original solution, almost the full list in line 314 was throttled (the exception was `window-update` wasn't throttled but there was a TODO to work out whether it should be throttled).
   
   If we do make a recommendation, I would suggest `frame-types = ["reset"] and suggest to users that they might want to expand the list.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458903816


##########
http-core/src/test/scala/org/apache/pekko/http/impl/util/WithLogCapturing.scala:
##########
@@ -86,6 +92,19 @@ trait WithLogCapturing extends SuiteMixin { this: TestSuite =>
       Failed(new AssertionError(
         s"No severe log messages should be emitted during test run but got [${stats(
             Logging.WarningLevel)}] warnings and [${stats(Logging.ErrorLevel)}] errors (see marked lines above)"))
+    } else if (expectSevereLogsOnlyToMatch.nonEmpty) {
+      val severeEvents = events.filter(isSevere(_))
+      val matchingEvents = severeEvents.filter(_.message.toString.contains(expectSevereLogsOnlyToMatch.get))
+      if (severeEvents.isEmpty || matchingEvents != severeEvents) {
+        val stats = events.groupBy(_.level).mapValues(_.size).toMap.withDefaultValue(0)

Review Comment:
   IIRC, there is a `groupMap`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "mdedetrich (via GitHub)" <gi...@apache.org>.
mdedetrich commented on PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#issuecomment-1900183492

   @He-Pin Did you have any last minute comments for this PR?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458909451


##########
http-core/src/main/resources/reference.conf:
##########
@@ -307,6 +307,17 @@ pekko.http {
       # Fail the connection if a sent ping is not acknowledged within this timeout.
       # When zero the ping-interval is used, if set the value must be evenly divisible by less than or equal to the ping-interval.
       ping-timeout = 0s
+
+      frame-type-throttle {
+        # Configure the throttle for non-data frame types (https://github.com/apache/incubator-pekko-http/issues/332)
+        # supported frame-types for throttlng are:
+        # reset, headers, continuation, go-away, priority, ping, push-promise, window-update

Review Comment:
   I think we can just keep this simple, a user can add what they want.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458990381


##########
http-core/src/test/scala/org/apache/pekko/http/impl/util/WithLogCapturing.scala:
##########
@@ -86,6 +92,19 @@ trait WithLogCapturing extends SuiteMixin { this: TestSuite =>
       Failed(new AssertionError(
         s"No severe log messages should be emitted during test run but got [${stats(
             Logging.WarningLevel)}] warnings and [${stats(Logging.ErrorLevel)}] errors (see marked lines above)"))
+    } else if (expectSevereLogsOnlyToMatch.nonEmpty) {
+      val severeEvents = events.filter(isSevere(_))
+      val matchingEvents = severeEvents.filter(_.message.toString.contains(expectSevereLogsOnlyToMatch.get))
+      if (severeEvents.isEmpty || matchingEvents != severeEvents) {
+        val stats = events.groupBy(_.level).mapValues(_.size).toMap.withDefaultValue(0)

Review Comment:
   this matches the code used in a couple of other places - if we want to try groupMap, I think that should be in a separate PR that addresses all similar code in pekko-http too.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning merged PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#issuecomment-1900155934

   @mdedetrich would it be possible for you to re-review this?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] [DRAFT] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1440343814


##########
http-core/src/main/scala/org/apache/pekko/http/scaladsl/settings/Http2ServerSettings.scala:
##########
@@ -124,6 +137,10 @@ object Http2ServerSettings extends SettingsCompanion[Http2ServerSettings] {
       logFrames: Boolean,
       pingInterval: FiniteDuration,
       pingTimeout: FiniteDuration,
+      frameTypeThrottleFrameTypes: Seq[String],

Review Comment:
   thanks - changed



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458902778


##########
http-core/src/main/scala/org/apache/pekko/http/scaladsl/settings/Http2ServerSettings.scala:
##########
@@ -136,6 +153,7 @@ object Http2ServerSettings extends SettingsCompanion[Http2ServerSettings] {
     require(minCollectStrictEntitySize <= (incomingConnectionLevelBufferSize / maxConcurrentStreams),
       "min-collect-strict-entity-size <= incoming-connection-level-buffer-size / max-concurrent-streams")
     require(outgoingControlFrameBufferSize > 0, "outgoing-control-frame-buffer-size must be > 0")
+    require(frameTypeThrottleInterval.toMillis > 0, "frame-type-throttle.interval must be a positive duration")

Review Comment:
   I think we can only check this when `frameTypeThrottleFrameTypes` is nonEmpty



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458901335


##########
http-core/src/main/scala/org/apache/pekko/http/scaladsl/settings/Http2ServerSettings.scala:
##########
@@ -102,6 +103,18 @@ trait Http2ServerSettings extends javadsl.settings.Http2ServerSettings with Http
   def pingTimeout: FiniteDuration
   def withPingTimeout(timeout: FiniteDuration): Http2ServerSettings = copy(pingTimeout = timeout)
 
+  def frameTypeThrottleFrameTypes: Set[String]
+  def withFrameTypeThrottleFrameTypes(frameTypes: Set[String]) = copy(frameTypeThrottleFrameTypes = frameTypes)
+
+  def frameTypeThrottleCost: Int
+  def withFrameTypeThrottleCost(cost: Int) = copy(frameTypeThrottleCost = cost)
+
+  def frameTypeThrottleBurst: Int
+  def withFrameTypeThrottleBurst(burst: Int) = copy(frameTypeThrottleBurst = burst)
+
+  def frameTypeThrottleInterval: FiniteDuration
+  def withFrameTypeThrottleInterval(interval: FiniteDuration) = copy(frameTypeThrottleInterval = interval)

Review Comment:
   use `java.time.Duration`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1452512208


##########
http-core/src/main/resources/reference.conf:
##########
@@ -307,6 +307,17 @@ pekko.http {
       # Fail the connection if a sent ping is not acknowledged within this timeout.
       # When zero the ping-interval is used, if set the value must be evenly divisible by less than or equal to the ping-interval.
       ping-timeout = 0s
+
+      frame-type-throttle {
+        # Configure the throttle for non-data frame types (https://github.com/apache/incubator-pekko-http/issues/332)
+        # supported frame-types for throttlng are:
+        # reset, headers, continuation, go-away, priority, ping, push-promise, window-update

Review Comment:
   @mdedetrich wdyt?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458994529


##########
http-core/src/main/scala/org/apache/pekko/http/impl/engine/http2/Http2Blueprint.scala:
##########
@@ -122,12 +122,18 @@ private[http] object Http2Blueprint {
       telemetry: TelemetrySpi,
     dateHeaderRendering: DateHeaderRendering): BidiFlow[HttpResponse, ByteString, ByteString, HttpRequest, ServerTerminator] = {
     val masterHttpHeaderParser = HttpHeaderParser(settings.parserSettings, log) // FIXME: reuse for framing
-    telemetry.serverConnection atop
+    val flow0 = telemetry.serverConnection atop
       httpLayer(settings, log, dateHeaderRendering) atopKeepRight
       serverDemux(settings.http2Settings, initialDemuxerSettings, upgraded) atop
       FrameLogger.logFramesIfEnabled(settings.http2Settings.logFrames) atop // enable for debugging
-      hpackCoding(masterHttpHeaderParser, settings.parserSettings) atop
-      framing(log) atop
+      hpackCoding(masterHttpHeaderParser, settings.parserSettings)
+
+    val frameTypesForThrottle = getFrameTypesForThrottle(settings.http2Settings)
+    val flow1 = if (frameTypesForThrottle.nonEmpty) {
+      flow0 atop rapidResetMitigation(settings.http2Settings, frameTypesForThrottle) atopKeepLeft framing(log)
+    } else flow0 atop framing(log)
+
+    flow1 atop

Review Comment:
   is cdfca2d098eacae695fb4c09cc37276e2d4f2d2c ok?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "pjfanning (via GitHub)" <gi...@apache.org>.
pjfanning commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458985616


##########
http-core/src/main/scala/org/apache/pekko/http/scaladsl/settings/Http2ServerSettings.scala:
##########
@@ -136,6 +153,7 @@ object Http2ServerSettings extends SettingsCompanion[Http2ServerSettings] {
     require(minCollectStrictEntitySize <= (incomingConnectionLevelBufferSize / maxConcurrentStreams),
       "min-collect-strict-entity-size <= incoming-connection-level-buffer-size / max-concurrent-streams")
     require(outgoingControlFrameBufferSize > 0, "outgoing-control-frame-buffer-size must be > 0")
+    require(frameTypeThrottleInterval.toMillis > 0, "frame-type-throttle.interval must be a positive duration")

Review Comment:
   I still think this is better to not allow bad values - the default value is ok and we have a warning in the reference.conf.
   
   And it is more efficient to do 1 check instead of 2 checks.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458901335


##########
http-core/src/main/scala/org/apache/pekko/http/scaladsl/settings/Http2ServerSettings.scala:
##########
@@ -102,6 +103,18 @@ trait Http2ServerSettings extends javadsl.settings.Http2ServerSettings with Http
   def pingTimeout: FiniteDuration
   def withPingTimeout(timeout: FiniteDuration): Http2ServerSettings = copy(pingTimeout = timeout)
 
+  def frameTypeThrottleFrameTypes: Set[String]
+  def withFrameTypeThrottleFrameTypes(frameTypes: Set[String]) = copy(frameTypeThrottleFrameTypes = frameTypes)
+
+  def frameTypeThrottleCost: Int
+  def withFrameTypeThrottleCost(cost: Int) = copy(frameTypeThrottleCost = cost)
+
+  def frameTypeThrottleBurst: Int
+  def withFrameTypeThrottleBurst(burst: Int) = copy(frameTypeThrottleBurst = burst)
+
+  def frameTypeThrottleInterval: FiniteDuration
+  def withFrameTypeThrottleInterval(interval: FiniteDuration) = copy(frameTypeThrottleInterval = interval)

Review Comment:
   use `java.time.Duration`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1458894880


##########
http-core/src/main/scala/org/apache/pekko/http/impl/engine/http2/Http2Blueprint.scala:
##########
@@ -122,12 +122,18 @@ private[http] object Http2Blueprint {
       telemetry: TelemetrySpi,
     dateHeaderRendering: DateHeaderRendering): BidiFlow[HttpResponse, ByteString, ByteString, HttpRequest, ServerTerminator] = {
     val masterHttpHeaderParser = HttpHeaderParser(settings.parserSettings, log) // FIXME: reuse for framing
-    telemetry.serverConnection atop
+    val flow0 = telemetry.serverConnection atop
       httpLayer(settings, log, dateHeaderRendering) atopKeepRight
       serverDemux(settings.http2Settings, initialDemuxerSettings, upgraded) atop
       FrameLogger.logFramesIfEnabled(settings.http2Settings.logFrames) atop // enable for debugging
-      hpackCoding(masterHttpHeaderParser, settings.parserSettings) atop
-      framing(log) atop
+      hpackCoding(masterHttpHeaderParser, settings.parserSettings)
+
+    val frameTypesForThrottle = getFrameTypesForThrottle(settings.http2Settings)
+    val flow1 = if (frameTypesForThrottle.nonEmpty) {
+      flow0 atop rapidResetMitigation(settings.http2Settings, frameTypesForThrottle) atopKeepLeft framing(log)
+    } else flow0 atop framing(log)
+
+    flow1 atop

Review Comment:
   Can `flow0` and `flow1` be replaced with a more meaningful name?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org


Re: [PR] Http2 frame type throttle [incubator-pekko-http]

Posted by "He-Pin (via GitHub)" <gi...@apache.org>.
He-Pin commented on code in PR #394:
URL: https://github.com/apache/incubator-pekko-http/pull/394#discussion_r1459727557


##########
http-core/src/main/scala/org/apache/pekko/http/scaladsl/settings/Http2ServerSettings.scala:
##########
@@ -136,6 +153,7 @@ object Http2ServerSettings extends SettingsCompanion[Http2ServerSettings] {
     require(minCollectStrictEntitySize <= (incomingConnectionLevelBufferSize / maxConcurrentStreams),
       "min-collect-strict-entity-size <= incoming-connection-level-buffer-size / max-concurrent-streams")
     require(outgoingControlFrameBufferSize > 0, "outgoing-control-frame-buffer-size must be > 0")
+    require(frameTypeThrottleInterval.toMillis > 0, "frame-type-throttle.interval must be a positive duration")

Review Comment:
   OK's let's ship it.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@pekko.apache.org
For additional commands, e-mail: notifications-help@pekko.apache.org