diff --git a/src/DurableTask.AzureStorage/OrchestrationSessionManager.cs b/src/DurableTask.AzureStorage/OrchestrationSessionManager.cs index 04b8b19dd..51a6e07ba 100644 --- a/src/DurableTask.AzureStorage/OrchestrationSessionManager.cs +++ b/src/DurableTask.AzureStorage/OrchestrationSessionManager.cs @@ -116,7 +116,10 @@ public bool IsControlQueueReceivingMessages(string partitionId) public bool IsControlQueueProcessingMessages(string partitionId) { - return this.activeOrchestrationSessions.Values.Where(session => string.Equals(session.ControlQueue.Name, partitionId)).Any(); + lock (this.messageAndSessionLock) + { + return this.activeOrchestrationSessions.Values.Where(session => string.Equals(session.ControlQueue.Name, partitionId)).Any(); + } } async Task DequeueLoop(string partitionId, ControlQueue controlQueue, CancellationToken cancellationToken)