Skip to content

Commit

Permalink
Fix non-rails worker not started on Process
Browse files Browse the repository at this point in the history
  • Loading branch information
agrare committed Aug 1, 2024
1 parent 89cb15b commit 775166c
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions app/models/miq_server/worker_management/process.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
class MiqServer::WorkerManagement::Process < MiqServer::WorkerManagement
def sync_from_system
require "sys/proctable"
self.miq_processes = Sys::ProcTable.ps.select { |proc| proc.ppid == my_server.pid }
self.miq_processes = Sys::ProcTable.ps.select { |proc| proc.ppid == my_server.pid }
self.miq_processes_by_pid = miq_processes.index_by(&:pid)
end

def sync_starting_workers
MiqWorker.find_all_starting.to_a
sync_from_system
starting = MiqWorker.find_all_starting
starting.where(:pid => miq_processes_by_pid.keys)
.reject(&:rails_worker?)
.each { |w| w.update!(:status => MiqWorker::STATUS_STARTED) }

starting.reload.to_a
end

def sync_stopping_workers
MiqWorker.find_all_stopping.to_a
sync_from_system
stopping = MiqWorker.find_all_stopping
stopping.where(:pid => miq_processes_by_pid.keys)
.reject(&:rails_worker?)
.each { |w| w.update!(:status => MiqWorker::STATUS_STOPPED) }

stopping.reload.to_a
end

def monitor_workers
Expand Down Expand Up @@ -74,5 +87,5 @@ def validate_worker(worker)

private

attr_accessor :miq_processes
attr_accessor :miq_processes, :miq_processes_by_pid
end

0 comments on commit 775166c

Please sign in to comment.