Skip to content

Commit dd1a9ce

Browse files
committed
Skip scheduling for empty cold creation.
1 parent 3354314 commit dd1a9ce

File tree

2 files changed

+16
-14
lines changed

2 files changed

+16
-14
lines changed

core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/container/ContainerManager.scala

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -181,20 +181,22 @@ class ContainerManager(jobManagerFactory: ActorRefFactory => ActorRef,
181181
}
182182

183183
// handle cold creations
184-
ContainerManager
185-
.schedule(updatedInvokers, coldCreations.map(_._1), memory)
186-
.map { pair =>
187-
pair.invokerId match {
188-
// an invoker is assigned for the msg
189-
case Some(instanceId) =>
190-
creationJobManager ! RegisterCreationJob(pair.msg)
191-
sendCreationContainerToInvoker(messagingProducer, instanceId.instance, pair.msg)
192-
193-
// if a chosen invoker does not exist, it means it failed to find a matching invoker for the msg.
194-
case _ =>
195-
pair.err.foreach(error => sendState(pair.msg, error, error))
184+
if (coldCreations.nonEmpty) {
185+
ContainerManager
186+
.schedule(updatedInvokers, coldCreations.map(_._1), memory)
187+
.map { pair =>
188+
pair.invokerId match {
189+
// an invoker is assigned for the msg
190+
case Some(instanceId) =>
191+
creationJobManager ! RegisterCreationJob(pair.msg)
192+
sendCreationContainerToInvoker(messagingProducer, instanceId.instance, pair.msg)
193+
194+
// if a chosen invoker does not exist, it means it failed to find a matching invoker for the msg.
195+
case _ =>
196+
pair.err.foreach(error => sendState(pair.msg, error, error))
197+
}
196198
}
197-
}
199+
}
198200
}
199201
}
200202
}

tests/src/test/scala/org/apache/openwhisk/core/scheduler/container/test/ContainerManagerTests.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ class ContainerManagerTests
136136

137137
def mockMessaging(receiver: Option[ActorRef] = None): MessagingProvider = {
138138
val messaging = stub[MessagingProvider]
139-
val producer = receiver.map(fakeProducer(_)).getOrElse(stub[MessageProducer])
139+
val producer = receiver.map(fakeProducer).getOrElse(stub[MessageProducer])
140140
val consumer = stub[MessageConsumer]
141141
(messaging
142142
.getProducer(_: WhiskConfig, _: Option[ByteSize])(_: Logging, _: ActorSystem))

0 commit comments

Comments
 (0)