bdoyle0182 commented on code in PR #5338:
URL: https://github.com/apache/openwhisk/pull/5338#discussion_r1008973051


##########
core/scheduler/src/main/scala/org/apache/openwhisk/core/scheduler/queue/MemoryQueue.scala:
##########
@@ -154,8 +168,8 @@ class MemoryQueue(private val etcdClient: EtcdClient,
   private val staleQueueRemovedMsg = QueueRemoved(invocationNamespace, 
action.toDocId.asDocInfo(revision), None)
   private val actionRetentionTimeout = 
MemoryQueue.getRetentionTimeout(actionMetaData, queueConfig)
 
-  private[queue] var containers = Set.empty[String]
-  private[queue] var creationIds = Set.empty[String]
+  private[queue] var containers = 
java.util.concurrent.ConcurrentHashMap.newKeySet[String]().asScala

Review Comment:
   This was a concern for me in the past with all of the `vars` in MemoryQueue. 
Are we sure this covers all var cases now to be thread safe? 
   
   I'm trying to debug an issue where etcd keys are orphaned for running 
containers (not warmed) that do not exist when I disable a scheduler and do a 
rolling deployment. Can reproduce it anytime I disable a scheduler right now. 
It's a new issue and think it may have been introduced with the cycle sending 
commit 
https://github.com/apache/openwhisk/commit/ef725a653ab112391f79c274d8e3dcfb915d59a3;
 I'm wondering if this actually fixes it.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to