From 4328b4cb6717e1bc8a5ef4c28129d9e08b43134d Mon Sep 17 00:00:00 2001 From: Elijah DeLee Date: Mon, 11 Apr 2022 14:48:36 -0400 Subject: [PATCH] drop call that queries all running and waiting jobs this is to fix one more place in the task manager where we end up querying all running and waiting jobs. Partial fix for https://github.com/ansible/awx/issues/11671 --- awx/main/models/ha.py | 2 +- awx/main/scheduler/task_manager.py | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/awx/main/models/ha.py b/awx/main/models/ha.py index 5ea31c32d4..9d7c956360 100644 --- a/awx/main/models/ha.py +++ b/awx/main/models/ha.py @@ -390,7 +390,7 @@ class InstanceGroup(HasPolicyEditsMixin, BaseModel, RelatedJobsMixin): for i in instances: if i.node_type not in (capacity_type, 'hybrid'): continue - if i.jobs_running == 0: + if (hasattr(i, 'jobs_running') and i.jobs_running == 0) or i.remaining_capacity == i.capacity: if largest_instance is None: largest_instance = i elif i.capacity > largest_instance.capacity: diff --git a/awx/main/scheduler/task_manager.py b/awx/main/scheduler/task_manager.py index fba17917cf..62dace5968 100644 --- a/awx/main/scheduler/task_manager.py +++ b/awx/main/scheduler/task_manager.py @@ -79,7 +79,6 @@ class TaskManager: node_type=instance.node_type, remaining_capacity=instance.remaining_capacity, capacity=instance.capacity, - jobs_running=instance.jobs_running, hostname=instance.hostname, ) for instance in instances @@ -490,7 +489,6 @@ class TaskManager: if task.capacity_type == 'control': task.execution_node = control_instance.hostname control_instance.remaining_capacity = max(0, control_instance.remaining_capacity - control_impact) - control_instance.jobs_running += 1 self.dependency_graph.add_job(task) execution_instance = self.real_instances[control_instance.hostname] task.log_lifecycle("controller_node_chosen") @@ -501,7 +499,6 @@ class TaskManager: for rampart_group in preferred_instance_groups: if rampart_group.is_container_group: - control_instance.jobs_running += 1 self.dependency_graph.add_job(task) self.start_task(task, rampart_group, task.get_jobs_fail_chain(), None) found_acceptable_queue = True @@ -526,10 +523,7 @@ class TaskManager: control_instance.remaining_capacity = max(0, control_instance.remaining_capacity - settings.AWX_CONTROL_NODE_TASK_IMPACT) task.log_lifecycle("controller_node_chosen") - if control_instance != execution_instance: - control_instance.jobs_running += 1 execution_instance.remaining_capacity = max(0, execution_instance.remaining_capacity - task.task_impact) - execution_instance.jobs_running += 1 task.log_lifecycle("execution_node_chosen") logger.debug( "Starting {} in group {} instance {} (remaining_capacity={})".format(