Skip to content

Commit 2306164

Browse files
style95michele-sciabarra
authored andcommitted
Exclude warmed containers in disabled invokers. (apache#5313)
* Exclude warmed containers in disabled invokers. * Exclude warmed containers in disabled invokers. * Find the first warmed container. * Remove the code added by mistake. * Add more logs for error cases.
1 parent e8a2b7c commit 2306164

File tree

4 files changed

+627
-253
lines changed

4 files changed

+627
-253
lines changed

common/scala/src/main/scala/org/apache/openwhisk/core/connector/Message.scala

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,23 @@ object ContainerMessage extends DefaultJsonProtocol {
636636
sealed trait ContainerCreationError
637637

638638
object ContainerCreationError extends Enumeration {
639+
import scala.language.implicitConversions
640+
implicit def containerCreationErrorToString(x: ContainerCreationError): String = {
641+
x match {
642+
case NoAvailableInvokersError => "no available invoker is found"
643+
case NoAvailableResourceInvokersError => "no available invoker with the resources is found: "
644+
case ResourceNotEnoughError => "invoker(s) have not enough resources"
645+
case WhiskError => "whisk error(recoverable) happens"
646+
case UnknownError => "a unknown error happens"
647+
case TimeoutError => "a timeout error happens"
648+
case ShuttingDownError => "shutting down error happens"
649+
case NonExecutableActionError => "no executable found for the action"
650+
case DBFetchError => "an error happens while fetching data from DB"
651+
case BlackBoxError => "a blackbox error happens"
652+
case ZeroNamespaceLimit => "the namespace has 0 limit configured"
653+
case TooManyConcurrentRequests => "too many concurrent requests are in flight."
654+
}
655+
}
639656

640657
case object NoAvailableInvokersError extends ContainerCreationError
641658

core/invoker/src/main/scala/org/apache/openwhisk/core/invoker/FPCInvokerReactive.scala

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -376,34 +376,20 @@ class FPCInvokerReactive(config: WhiskConfig,
376376
override def enable(): Route = {
377377
invokerHealthManager ! Enable
378378
pool ! Enable
379-
// re-enable consumer
380-
if (consumer.isEmpty)
381-
consumer = Some(
382-
new ContainerMessageConsumer(
383-
instance,
384-
pool,
385-
entityStore,
386-
cfg,
387-
msgProvider,
388-
longPollDuration = 1.second,
389-
maxPeek,
390-
sendAckToScheduler))
391379
warmUp()
392380
complete("Success enable invoker")
393381
}
394382

395383
override def disable(): Route = {
396384
invokerHealthManager ! GracefulShutdown
397385
pool ! GracefulShutdown
398-
consumer.foreach(_.close())
399-
consumer = None
400386
warmUpWatcher.foreach(_.close())
401387
warmUpWatcher = None
402388
complete("Successfully disabled invoker")
403389
}
404390

405391
override def isEnabled(): Route = {
406-
complete(InvokerEnabled(consumer.nonEmpty && warmUpWatcher.nonEmpty).serialize())
392+
complete(InvokerEnabled(warmUpWatcher.nonEmpty).serialize())
407393
}
408394

409395
override def backfillPrewarm(): Route = {

0 commit comments

Comments
 (0)