diff --git a/lib/cloud_controller/diego/tasks_sync.rb b/lib/cloud_controller/diego/tasks_sync.rb index 0391086ed5d..f9528b239e6 100644 --- a/lib/cloud_controller/diego/tasks_sync.rb +++ b/lib/cloud_controller/diego/tasks_sync.rb @@ -37,8 +37,10 @@ def sync end end - TaskModel.where(guid: tasks_to_fail).each do |cc_task| - cc_task.update(state: TaskModel::FAILED_STATE, failure_reason: BULKER_TASK_FAILURE) + unless tasks_to_fail.empty? + TaskModel.where(guid: tasks_to_fail).each do |cc_task| + cc_task.update(state: TaskModel::FAILED_STATE, failure_reason: BULKER_TASK_FAILURE) + end end end diff --git a/spec/unit/lib/cloud_controller/diego/tasks_sync_spec.rb b/spec/unit/lib/cloud_controller/diego/tasks_sync_spec.rb index d6960a5717d..7029d1926b6 100644 --- a/spec/unit/lib/cloud_controller/diego/tasks_sync_spec.rb +++ b/spec/unit/lib/cloud_controller/diego/tasks_sync_spec.rb @@ -37,6 +37,12 @@ module Diego subject.sync end.not_to(change { task.reload.state }) end + + it 'does not query tasks with a 1=0 clause' do + expect do + subject.sync + end.to have_queried_db_times(/select \* from .tasks. where \(1 = 0\)/i, 0) + end end context 'when a running CC task is missing from BBS' do