Skip to content

Commit f0e2019

Browse files
Update msg start time to ensure it's not stale
1 parent 9bb8ed7 commit f0e2019

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

tests/src/test/scala/org/apache/openwhisk/core/scheduler/queue/test/QueueManagerTests.scala

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ class QueueManagerTests
102102
content = None)
103103
val statusData = StatusData(testInvocationNamespace, testFQN.asString, 0, "Running", "RunningData")
104104

105+
// update start time for activation to ensure it's not stale
106+
def newActivation(start: Instant = Instant.now()): ActivationMessage = {
107+
activationMessage.copy(transid = TransactionId(messageTransId.meta.copy(start = start)))
108+
}
109+
105110
val activationResponse = ActivationResponse(Right(activationMessage))
106111

107112
val ack = new ActiveAck {
@@ -126,7 +131,7 @@ class QueueManagerTests
126131
system.actorOf(Props(new Actor() {
127132
override def receive: Receive = {
128133
case GetActivation(_, _, _, _, _, _) =>
129-
sender ! ActivationResponse(Right(activationMessage))
134+
sender ! ActivationResponse(Right(newActivation()))
130135
case StatusQuery =>
131136
sender ! statusData
132137
}
@@ -391,13 +396,13 @@ class QueueManagerTests
391396

392397
// got a message but no queue created on this scheduler
393398
// it should try to got leader key from etcd and forward this msg to remote queue, here is `schedulerEndpoints`
394-
queueManager ! activationMessage
399+
queueManager ! newActivation()
395400
stream.toString should include(s"send activation to remote queue, key: $leaderKey")
396401
stream.toString should include(s"add a new actor selection to a map with key: $leaderKey")
397402
stream.reset()
398403

399404
// got msg again, and it should get remote queue from memory instead of etcd
400-
val msg2 = activationMessage.copy(activationId = ActivationId.generate())
405+
val msg2 = newActivation().copy(activationId = ActivationId.generate())
401406
queueManager ! msg2
402407
stream.toString shouldNot include(s"send activation to remote queue, key: $leaderKey")
403408
}
@@ -594,7 +599,7 @@ class QueueManagerTests
594599
true)
595600

596601
//the activationMessage's revision(1-test-revision) is older than current queue's revision(2-test-revision)
597-
queueManager ! activationMessage
602+
queueManager ! newActivation()
598603

599604
stream.toString should include(s"it will be replaced with the latest revision and invoked")
600605
}
@@ -625,8 +630,8 @@ class QueueManagerTests
625630
mockConsumer,
626631
QueueManagerConfig(maxRetriesToGetQueue = 2, maxSchedulingTime = 10 seconds)))
627632

628-
queueManager ! activationMessage
629-
Thread.sleep(1000)
633+
queueManager ! newActivation()
634+
Thread.sleep(100)
630635
(mockEtcdClient.get _) verify (*) repeated (3)
631636
}
632637

@@ -657,7 +662,7 @@ class QueueManagerTests
657662
mockConsumer,
658663
QueueManagerConfig(maxRetriesToGetQueue = 2, maxSchedulingTime = 10 seconds)))
659664

660-
queueManager ! activationMessage.copy(transid = TransactionId(messageTransId.meta.copy(start = Instant.now())))
665+
queueManager ! newActivation()
661666
Thread.sleep(100)
662667
(mockEtcdClient.get _) verify (*) repeated (3)
663668
}
@@ -753,7 +758,7 @@ class QueueManagerTests
753758
}
754759

755760
val oldNow = Instant.now(Clock.systemUTC()).minusMillis(11000)
756-
val oldActivationMessage = activationMessage.copy(transid = TransactionId(messageTransId.meta.copy(start = oldNow)))
761+
val oldActivationMessage = newActivation(oldNow)
757762

758763
val queueManager =
759764
TestActorRef(
@@ -807,7 +812,7 @@ class QueueManagerTests
807812
}
808813

809814
val oldNow = Instant.now(Clock.systemUTC()).minusMillis(9000)
810-
val oldActivationMessage = activationMessage.copy(transid = TransactionId(messageTransId.meta.copy(start = oldNow)))
815+
val oldActivationMessage = newActivation(oldNow)
811816

812817
val queueManager =
813818
TestActorRef(
@@ -877,7 +882,7 @@ class QueueManagerTests
877882
true)
878883

879884
queueManager.tell(
880-
UpdateMemoryQueue(testFQN.toDocId.asDocInfo(testDocRevision), newFqn, activationMessage),
885+
UpdateMemoryQueue(testFQN.toDocId.asDocInfo(testDocRevision), newFqn, newActivation()),
881886
consumer.ref)
882887

883888
probe.expectMsg(activationMessage.activationId)
@@ -1084,7 +1089,7 @@ class QueueManagerTests
10841089
system.actorOf(Props(new Actor() {
10851090
override def receive: Receive = {
10861091
case GetActivation(_, _, _, _, _, _) =>
1087-
sender ! ActivationResponse(Right(activationMessage))
1092+
sender ! ActivationResponse(Right(newActivation()))
10881093

10891094
case GracefulShutdown =>
10901095
probe.ref ! GracefulShutdown

0 commit comments

Comments
 (0)