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]
