This is an automated email from the ASF dual-hosted git repository.
markusthoemmes pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git
The following commit(s) were added to refs/heads/master by this push:
new bbb5c58 Changed hardcoded timeouts for idle containers and pause
grace to config entries. (#3471)
bbb5c58 is described below
commit bbb5c5802fd12830d7a87b973c9794d3a3d17ffd
Author: Brendan McAdams <[email protected]>
AuthorDate: Tue Apr 3 05:50:09 2018 -0700
Changed hardcoded timeouts for idle containers and pause grace to config
entries. (#3471)
Fixes #3470
---
common/scala/src/main/scala/whisk/core/WhiskConfig.scala | 4 ++++
core/invoker/src/main/resources/application.conf | 9 +++++++++
.../main/scala/whisk/core/containerpool/ContainerProxy.scala | 11 +++++++++--
3 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/common/scala/src/main/scala/whisk/core/WhiskConfig.scala
b/common/scala/src/main/scala/whisk/core/WhiskConfig.scala
index 9b4dd98..8779323 100644
--- a/common/scala/src/main/scala/whisk/core/WhiskConfig.scala
+++ b/common/scala/src/main/scala/whisk/core/WhiskConfig.scala
@@ -250,4 +250,8 @@ object ConfigKeys {
val elasticSearch = s"$logStore.elasticsearch"
val mesos = "whisk.mesos"
+
+ val containerProxy = "whisk.container-proxy"
+ val containerProxyTimeouts = s"$containerProxy.timeouts"
+
}
diff --git a/core/invoker/src/main/resources/application.conf
b/core/invoker/src/main/resources/application.conf
index bc651fc..3ee046d 100644
--- a/core/invoker/src/main/resources/application.conf
+++ b/core/invoker/src/main/resources/application.conf
@@ -44,4 +44,13 @@ whisk {
dns-servers: []
extra-args: {}
}
+
+ container-proxy {
+ timeouts {
+ # The "unusedTimeout" in the ContainerProxy,
+ #aka 'How long should a container sit idle until we kill it?'
+ idle-container = 10 minutes
+ pause-grace = 50 milliseconds
+ }
+ }
}
diff --git
a/core/invoker/src/main/scala/whisk/core/containerpool/ContainerProxy.scala
b/core/invoker/src/main/scala/whisk/core/containerpool/ContainerProxy.scala
index d50e07c..99557e6 100644
--- a/core/invoker/src/main/scala/whisk/core/containerpool/ContainerProxy.scala
+++ b/core/invoker/src/main/scala/whisk/core/containerpool/ContainerProxy.scala
@@ -18,6 +18,7 @@
package whisk.core.containerpool
import java.time.Instant
+
import scala.concurrent.Future
import scala.concurrent.duration._
import scala.util.Success
@@ -37,6 +38,8 @@ import whisk.core.entity.size._
import whisk.core.entity.ExecManifest.ImageName
import whisk.http.Messages
import akka.event.Logging.InfoLevel
+import pureconfig.loadConfigOrThrow
+import whisk.core.ConfigKeys
// States
sealed trait ContainerState
@@ -406,6 +409,8 @@ class ContainerProxy(
}
}
+final case class ContainerProxyTimeoutConfig(idleContainer: FiniteDuration,
pauseGrace: FiniteDuration)
+
object ContainerProxy {
def props(
factory: (TransactionId, String, ImageName, Boolean, ByteSize) =>
Future[Container],
@@ -413,13 +418,15 @@ object ContainerProxy {
store: (TransactionId, WhiskActivation) => Future[Any],
collectLogs: (TransactionId, Identity, WhiskActivation, Container,
ExecutableWhiskAction) => Future[ActivationLogs],
instance: InstanceId,
- unusedTimeout: FiniteDuration = 10.minutes,
- pauseGrace: FiniteDuration = 50.milliseconds) =
+ unusedTimeout: FiniteDuration = timeouts.idleContainer,
+ pauseGrace: FiniteDuration = timeouts.pauseGrace) =
Props(new ContainerProxy(factory, ack, store, collectLogs, instance,
unusedTimeout, pauseGrace))
// Needs to be thread-safe as it's used by multiple proxies concurrently.
private val containerCount = new Counter
+ val timeouts =
loadConfigOrThrow[ContainerProxyTimeoutConfig](ConfigKeys.containerProxyTimeouts)
+
/**
* Generates a unique container name.
*
--
To stop receiving notification emails like this one, please contact
[email protected].