diff --git a/app/models/miq_server/worker_management/monitor/quiesce.rb b/app/models/miq_server/worker_management/monitor/quiesce.rb index b46bd7a4fa3..e1a1f9ef68b 100644 --- a/app/models/miq_server/worker_management/monitor/quiesce.rb +++ b/app/models/miq_server/worker_management/monitor/quiesce.rb @@ -3,9 +3,6 @@ module MiqServer::WorkerManagement::Monitor::Quiesce def workers_quiesced? # do a subset of the monitor_workers loop to allow for graceful exit - my_server.heartbeat - - check_not_responding check_pending_stop clean_worker_records @@ -43,6 +40,8 @@ def quiesce_workers_loop loop do my_server.reload # Reload from SQL this MiqServer AND its miq_workers association + my_server.heartbeat + break if self.workers_quiesced? sleep worker_monitor_poll end diff --git a/app/models/miq_server/worker_management/process.rb b/app/models/miq_server/worker_management/process.rb index 91a9129dc30..75cee5e3afa 100644 --- a/app/models/miq_server/worker_management/process.rb +++ b/app/models/miq_server/worker_management/process.rb @@ -32,6 +32,11 @@ def cleanup_failed_workers super end + def workers_quiesced? + check_not_responding + super + end + def check_not_responding worker_deleted = false miq_workers.each do |w|