commit 6277990348da43d446468fbe9f3d47ef787e588e (HEAD -> separate-fc-for-worker, praiskup/separate-fc-for-worker) Author: Pavel Raiskup AuthorDate: Thu Jan 2 17:09:18 2020 +0100 Commit: Pavel Raiskup CommitDate: Thu Jan 2 17:12:28 2020 +0100 backend: separate frontend_client for each Worker process Because we shared FrontendClient object with BuildDispatcher, we for some reason weren't able to communicate with RedisLogHandler and some log entries were lost. diff --git a/backend/backend/daemons/worker.py b/backend/backend/daemons/worker.py index f679a1a8..001283e8 100644 --- a/backend/backend/daemons/worker.py +++ b/backend/backend/daemons/worker.py @@ -12,6 +12,7 @@ from ..mockremote import MockRemote from ..constants import BuildStatus, build_log_format from ..helpers import register_build_result, get_redis_logger, \ local_file_logger, run_cmd, pkg_name_evr +from ..frontend import FrontendClient from ..msgbus import ( MsgBusStomp, @@ -26,11 +27,10 @@ from ..sshcmd import SSHConnectionError class Worker(multiprocessing.Process): msg_buses = [] - def __init__(self, opts, frontend_client, vm_manager, worker_id, vm, job, reattach=False): + def __init__(self, opts, vm_manager, worker_id, vm, job, reattach=False): multiprocessing.Process.__init__(self, name="worker-{}".format(worker_id)) self.opts = opts - self.frontend_client = frontend_client self.vm_manager = vm_manager self.worker_id = worker_id self.vm = vm @@ -38,6 +38,7 @@ class Worker(multiprocessing.Process): self.reattach = reattach self.log = get_redis_logger(self.opts, self.name, "worker") + self.frontend_client = FrontendClient(self.opts, self.log) @property def name(self):