diff --git a/app/models/miq_cockpit_ws_worker/runner.rb b/app/models/miq_cockpit_ws_worker/runner.rb index 4252d29d2c5..62d35ff7cd9 100644 --- a/app/models/miq_cockpit_ws_worker/runner.rb +++ b/app/models/miq_cockpit_ws_worker/runner.rb @@ -168,8 +168,17 @@ def start_drb_service stop_drb_service acl = ACL.new(%w(deny all allow 127.0.0.1/32)) - @drb_server = DRb::DRbServer.new(@drb_uri || "druby://127.0.0.1:0", - MiqCockpitWsWorker::Authenticator, acl) + + if @drb_uri + @drb_server = DRb::DRbServer.new(@drb_uri, MiqCockpitWsWorker::Authenticator, acl) + else + require 'tmpdir' + Dir::Tmpname.create("cockpit", nil) do |path| + @drb_server = DRb::DRbServer.new("drbunix://#{path}", MiqCockpitWsWorker::Authenticator, acl) + FileUtils.chmod(0o750, path) + end + end + @drb_uri = @drb_server.uri _log.info("#{log_prefix} Started drb Process at #{@drb_uri}") end diff --git a/app/models/miq_server/worker_management.rb b/app/models/miq_server/worker_management.rb index 40b8d14c342..cfb1353ae19 100644 --- a/app/models/miq_server/worker_management.rb +++ b/app/models/miq_server/worker_management.rb @@ -33,8 +33,12 @@ def start_drb_server acl = ACL.new(%w( deny all allow 127.0.0.1/32 )) DRb.install_acl(acl) - drb = DRb.start_service("druby://127.0.0.1:0", self) - update_attributes(:drb_uri => drb.uri) + require 'tmpdir' + Dir::Tmpname.create("worker_monitor", nil) do |path| + drb = DRb.start_service("drbunix://#{path}", self) + FileUtils.chmod(0o750, path) + update_attributes(:drb_uri => drb.uri) + end end def worker_add(worker_pid)