Skip to content

Commit 88887d5

Browse files
committed
Make the test stable
1 parent 07c9202 commit 88887d5

File tree

3 files changed

+50
-36
lines changed

3 files changed

+50
-36
lines changed

core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/v2/ActivationClientProxy.scala

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,9 @@ class ActivationClientProxy(
124124
stay()
125125

126126
case Event(e: RescheduleActivation, client: Client) =>
127-
logging.info(this, s"[${containerId.asString}] got a reschedule message ${e.msg.activationId} for action: ${e.msg.action}")
127+
logging.info(
128+
this,
129+
s"[${containerId.asString}] got a reschedule message ${e.msg.activationId} for action: ${e.msg.action}")
128130
client.activationClient
129131
.rescheduleActivation(
130132
RescheduleRequest(e.invocationNamespace, e.fqn.serialize, e.rev.serialize, e.msg.serialize))
@@ -247,7 +249,9 @@ class ActivationClientProxy(
247249
stay()
248250

249251
case Event(f: FailureMessage, c: Client) =>
250-
logging.error(this, s"[${containerId.asString}] some error happened for action: ${action} in state: $stateName, caused by: $f")
252+
logging.error(
253+
this,
254+
s"[${containerId.asString}] some error happened for action: ${action} in state: $stateName, caused by: $f")
251255
safelyCloseClient(c)
252256
stay()
253257

@@ -281,7 +285,9 @@ class ActivationClientProxy(
281285
goto(ClientProxyRemoving)
282286

283287
case Event(ClientClosed, _) =>
284-
logging.info(this, s"[${containerId.asString}] the underlying client is closed, stopping the activation client proxy")
288+
logging.info(
289+
this,
290+
s"[${containerId.asString}] the underlying client is closed, stopping the activation client proxy")
285291
context.parent ! ClientClosed
286292

287293
stop()

core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/v2/FunctionPullingContainerProxy.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,11 @@ class FunctionPullingContainerProxy(
339339

340340
// wait for container creation when cold start
341341
case Event(ClientCreationCompleted(proxy), _: NonexistentData) =>
342-
self ! ClientCreationCompleted(proxy.orElse(Some(sender())))
342+
akka.pattern.after(3.milliseconds, actorSystem.scheduler) {
343+
self ! ClientCreationCompleted(proxy.orElse(Some(sender())))
344+
Future.successful({})
345+
}
346+
343347
stay()
344348

345349
// client was successfully obtained

tests/src/test/scala/org/apache/openwhisk/core/containerpool/v2/test/FunctionPullingContainerProxyTests.scala

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ class FunctionPullingContainerProxyTests
444444
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, transid)
445445
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
446446
client.expectMsg(StartClient)
447-
client.send(machine, ClientCreationCompleted())
447+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
448448

449449
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
450450
expectInitialized(probe)
@@ -509,7 +509,7 @@ class FunctionPullingContainerProxyTests
509509
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
510510
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
511511
client.expectMsg(StartClient)
512-
client.send(machine, ClientCreationCompleted())
512+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
513513

514514
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
515515
expectInitialized(probe)
@@ -573,7 +573,7 @@ class FunctionPullingContainerProxyTests
573573
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
574574
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
575575
client.expectMsg(StartClient)
576-
client.send(machine, ClientCreationCompleted())
576+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
577577

578578
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
579579
expectInitialized(probe)
@@ -642,7 +642,7 @@ class FunctionPullingContainerProxyTests
642642
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
643643
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
644644
client.expectMsg(StartClient)
645-
client.send(machine, ClientCreationCompleted())
645+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
646646

647647
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
648648
expectInitialized(probe)
@@ -883,7 +883,7 @@ class FunctionPullingContainerProxyTests
883883
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
884884
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
885885
client.expectMsg(StartClient)
886-
client.send(machine, ClientCreationCompleted())
886+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
887887

888888
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
889889
expectInitialized(probe)
@@ -943,7 +943,7 @@ class FunctionPullingContainerProxyTests
943943
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
944944
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
945945
client.expectMsg(StartClient)
946-
client.send(machine, ClientCreationCompleted())
946+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
947947

948948
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
949949
expectInitialized(probe)
@@ -1015,7 +1015,7 @@ class FunctionPullingContainerProxyTests
10151015
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
10161016
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
10171017
client.expectMsg(StartClient)
1018-
client.send(machine, ClientCreationCompleted())
1018+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
10191019

10201020
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
10211021
expectInitialized(probe)
@@ -1094,7 +1094,7 @@ class FunctionPullingContainerProxyTests
10941094

10951095
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
10961096
client.expectMsg(StartClient)
1097-
client.send(machine, ClientCreationCompleted())
1097+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
10981098

10991099
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
11001100
expectInitialized(probe)
@@ -1180,7 +1180,7 @@ class FunctionPullingContainerProxyTests
11801180

11811181
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
11821182
client.expectMsg(StartClient)
1183-
client.send(machine, ClientCreationCompleted())
1183+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
11841184

11851185
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
11861186
expectInitialized(probe)
@@ -1265,7 +1265,7 @@ class FunctionPullingContainerProxyTests
12651265
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
12661266
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
12671267
client.expectMsg(StartClient)
1268-
client.send(machine, ClientCreationCompleted())
1268+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
12691269

12701270
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
12711271
expectInitialized(probe)
@@ -1342,7 +1342,7 @@ class FunctionPullingContainerProxyTests
13421342
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
13431343
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
13441344
client.expectMsg(StartClient)
1345-
client.send(machine, ClientCreationCompleted())
1345+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
13461346

13471347
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
13481348
expectInitialized(probe)
@@ -1423,7 +1423,7 @@ class FunctionPullingContainerProxyTests
14231423
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
14241424
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
14251425
client.expectMsg(StartClient)
1426-
client.send(machine, ClientCreationCompleted())
1426+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
14271427

14281428
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
14291429
expectInitialized(probe)
@@ -1500,7 +1500,7 @@ class FunctionPullingContainerProxyTests
15001500
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
15011501
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
15021502
client.expectMsg(StartClient)
1503-
client.send(machine, ClientCreationCompleted())
1503+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
15041504

15051505
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
15061506
expectInitialized(probe)
@@ -1576,7 +1576,11 @@ class FunctionPullingContainerProxyTests
15761576
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
15771577
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
15781578
client.expectMsg(StartClient)
1579-
client.send(machine, ClientCreationCompleted())
1579+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
1580+
1581+
awaitAssert {
1582+
machine.underlyingActor.stateData.getContainer should not be None
1583+
}
15801584

15811585
val containerId = machine.underlyingActor.stateData.getContainer match {
15821586
case Some(container) => container.containerId
@@ -1666,7 +1670,7 @@ class FunctionPullingContainerProxyTests
16661670
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
16671671
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
16681672
client.expectMsg(StartClient)
1669-
client.send(machine, ClientCreationCompleted())
1673+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
16701674
dataManagementService.expectMsg(
16711675
RegisterData(
16721676
ContainerKeys.existingContainers(
@@ -1775,7 +1779,7 @@ class FunctionPullingContainerProxyTests
17751779
machine ! Initialize(invocationNamespace.asString, fqn, noLogsAction, schedulerHost, rpcPort, messageTransId)
17761780
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
17771781
client.expectMsg(StartClient)
1778-
client.send(machine, ClientCreationCompleted())
1782+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
17791783

17801784
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
17811785
expectInitialized(probe)
@@ -1906,7 +1910,7 @@ class FunctionPullingContainerProxyTests
19061910
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
19071911
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
19081912
client.expectMsg(StartClient)
1909-
client.send(machine, ClientCreationCompleted())
1913+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
19101914

19111915
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
19121916
expectInitialized(probe)
@@ -1980,7 +1984,7 @@ class FunctionPullingContainerProxyTests
19801984
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
19811985
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
19821986
client.expectMsg(StartClient)
1983-
client.send(machine, ClientCreationCompleted())
1987+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
19841988

19851989
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
19861990
expectInitialized(probe)
@@ -2057,7 +2061,7 @@ class FunctionPullingContainerProxyTests
20572061
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
20582062
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
20592063
client.expectMsg(StartClient)
2060-
client.send(machine, ClientCreationCompleted())
2064+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
20612065

20622066
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
20632067
expectInitialized(probe)
@@ -2136,7 +2140,7 @@ class FunctionPullingContainerProxyTests
21362140
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
21372141
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
21382142
client.expectMsg(StartClient)
2139-
client.send(machine, ClientCreationCompleted())
2143+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
21402144

21412145
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
21422146
expectInitialized(probe)
@@ -2226,7 +2230,7 @@ class FunctionPullingContainerProxyTests
22262230
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
22272231
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
22282232
client.expectMsg(StartClient)
2229-
client.send(machine, ClientCreationCompleted())
2233+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
22302234

22312235
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
22322236
expectInitialized(probe)
@@ -2289,7 +2293,7 @@ class FunctionPullingContainerProxyTests
22892293
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
22902294
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
22912295
client.expectMsg(StartClient)
2292-
client.send(machine, ClientCreationCompleted())
2296+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
22932297

22942298
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
22952299
expectInitialized(probe)
@@ -2355,7 +2359,7 @@ class FunctionPullingContainerProxyTests
23552359
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
23562360
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
23572361
client.expectMsg(StartClient)
2358-
client.send(machine, ClientCreationCompleted())
2362+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
23592363

23602364
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
23612365
expectInitialized(probe)
@@ -2425,7 +2429,7 @@ class FunctionPullingContainerProxyTests
24252429
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
24262430
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
24272431
client.expectMsg(StartClient)
2428-
client.send(machine, ClientCreationCompleted())
2432+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
24292433

24302434
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
24312435
expectInitialized(probe)
@@ -2508,7 +2512,7 @@ class FunctionPullingContainerProxyTests
25082512
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
25092513
probe.expectMsg(Transition(machine, Uninitialized, CreatingClient))
25102514
client.expectMsg(StartClient)
2511-
client.send(machine, ClientCreationCompleted())
2515+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
25122516

25132517
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
25142518
expectInitialized(probe)
@@ -2585,7 +2589,7 @@ class FunctionPullingContainerProxyTests
25852589
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
25862590
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
25872591
client.expectMsg(StartClient)
2588-
client.send(machine, ClientCreationCompleted())
2592+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
25892593

25902594
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
25912595
expectInitialized(probe)
@@ -2652,7 +2656,7 @@ class FunctionPullingContainerProxyTests
26522656
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
26532657
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
26542658
client.expectMsg(StartClient)
2655-
client.send(machine, ClientCreationCompleted())
2659+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
26562660

26572661
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
26582662
expectInitialized(probe)
@@ -2738,7 +2742,7 @@ class FunctionPullingContainerProxyTests
27382742
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
27392743
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
27402744
client.expectMsg(StartClient)
2741-
client.send(machine, ClientCreationCompleted())
2745+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
27422746

27432747
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
27442748
expectInitialized(probe)
@@ -2818,7 +2822,7 @@ class FunctionPullingContainerProxyTests
28182822
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, transid)
28192823
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
28202824
client.expectMsg(StartClient)
2821-
client.send(machine, ClientCreationCompleted())
2825+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
28222826

28232827
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
28242828
expectInitialized(probe)
@@ -2889,7 +2893,7 @@ class FunctionPullingContainerProxyTests
28892893
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
28902894
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
28912895
client.expectMsg(StartClient)
2892-
client.send(machine, ClientCreationCompleted())
2896+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
28932897

28942898
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
28952899
expectInitialized(probe)
@@ -2951,7 +2955,7 @@ class FunctionPullingContainerProxyTests
29512955
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
29522956
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
29532957
client.expectMsg(StartClient)
2954-
client.send(machine, ClientCreationCompleted())
2958+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
29552959

29562960
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
29572961
expectInitialized(probe)
@@ -3017,7 +3021,7 @@ class FunctionPullingContainerProxyTests
30173021
machine ! Initialize(invocationNamespace.asString, fqn, action, schedulerHost, rpcPort, messageTransId)
30183022
probe.expectMsg(Transition(machine, ContainerCreated, CreatingClient))
30193023
client.expectMsg(StartClient)
3020-
client.send(machine, ClientCreationCompleted())
3024+
client.send(machine, ClientCreationCompleted(Some(client.ref)))
30213025

30223026
probe.expectMsg(Transition(machine, CreatingClient, ClientCreated))
30233027
expectInitialized(probe)

0 commit comments

Comments
 (0)