This commit is contained in:
Pavel Raiskup 2020-01-02 19:49:29 +01:00 committed by Pierre-Yves Chibon
parent cddf37c65b
commit e369176ea4
3 changed files with 79 additions and 0 deletions

View file

@ -0,0 +1,24 @@
commit 6277990348da43d446468fbe9f3d47ef787e588e (HEAD -> separate-fc-for-worker, praiskup/separate-fc-for-worker)
Author: Pavel Raiskup <praiskup@redhat.com>
AuthorDate: Thu Jan 2 17:09:18 2020 +0100
Commit: Pavel Raiskup <praiskup@redhat.com>
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/build_dispatcher.py b/backend/backend/daemons/build_dispatcher.py
index 4546ca74..af7e0654 100644
--- a/backend/backend/daemons/build_dispatcher.py
+++ b/backend/backend/daemons/build_dispatcher.py
@@ -126,7 +126,6 @@ class BuildDispatcher(multiprocessing.Process):
def start_worker(self, vm, job, reattach=False):
worker = Worker(
opts=self.opts,
- frontend_client=self.frontend_client,
vm_manager=self.vm_manager,
worker_id=self.next_worker_id,
vm=vm, job=job, reattach=reattach

View file

@ -0,0 +1,45 @@
commit 6277990348da43d446468fbe9f3d47ef787e588e (HEAD -> separate-fc-for-worker, praiskup/separate-fc-for-worker)
Author: Pavel Raiskup <praiskup@redhat.com>
AuthorDate: Thu Jan 2 17:09:18 2020 +0100
Commit: Pavel Raiskup <praiskup@redhat.com>
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):

View file

@ -33,6 +33,16 @@
dest=/usr/bin/prunerepo
tags: patches
- name: patch 1 for https://pagure.io/copr/copr/pull-request/1172
patch: src=patches/fc-client-for-worker.patch
dest=/usr/share/copr/backend/daemons/worker.py
tags: patches
- name: patch 2 for https://pagure.io/copr/copr/pull-request/1172
patch: src=patches/fc-client-for-worker-bd.patch
dest=/usr/share/copr/backend/daemons/build_dispatcher.py
tags: patches
- name: install openstackclient for image preparation
dnf: state=present name=python3-openstackclient
when: devel|bool