Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 637, in cli_main main() File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 337, in main latest_link_components=latest_link_components, File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 495, in run_compose essentials_phase.stop() File "/usr/lib/python3.6/site-packages/pungi/phases/weaver.py", line 57, in stop self.pool.stop() File "/usr/lib/python3.6/site-packages/kobo/threads.py", line 120, in stop six.reraise(exc_info[0], exc_info[1], exc_info[2]) File "/usr/lib/python3.6/site-packages/six.py", line 693, in reraise raise value File "/usr/lib/python3.6/site-packages/kobo/threads.py", line 67, in run self.process(item, num) File "/usr/lib/python3.6/site-packages/pungi/phases/weaver.py", line 78, in process phase.start() File "/usr/lib/python3.6/site-packages/pungi/phases/base.py", line 63, in start self.run() File "/usr/lib/python3.6/site-packages/pungi/phases/gather/__init__.py", line 104, in run self.compose, self.pkgset_phase.package_sets, self.pkgset_phase.path_prefix File "/usr/lib/python3.6/site-packages/pungi/phases/gather/__init__.py", line 803, in gather_wrapper _gather_variants(result, compose, "variant", package_sets) File "/usr/lib/python3.6/site-packages/pungi/phases/gather/__init__.py", line 710, in _gather_variants variant = compose.all_variants[variant_uid] KeyError: 'HighAvailability' Frame _gather_variants in /usr/lib/python3.6/site-packages/pungi/phases/gather/__init__.py at line 710 703 """Run gathering on all arches of all variants of given type. 704 705 If ``exclude_fulltree`` is set, all source packages from parent variants 706 will be added to fulltree excludes for the processed variants. 707 """ 708 709 for variant_uid in get_ordered_variant_uids(compose): --> 710 variant = compose.all_variants[variant_uid] 711 if variant.type != variant_type: 712 continue 713 threads_list = [] 714 que = Queue() 715 errors = Queue() 716 for arch in variant.arches: arch = 'x86_64' compose = errors = exclude_fulltree = False fulltree_excludes = set() package_sets = [] pkg_map = {'rpm': [{'path': '/mnt/koji/packages/Box2D/2.4.1/3.oc9/data/signed/b1ee0065/x86_64/Box2D-2.4.1-3.oc9.x86_64.rpm', 'flags': []}, {'path': '/mnt/koji/packages/Box2D/2.4.1/3.oc9/data/signed/b1ee0065/x86 que = result = {'x86_64': {'BaseOS': {'rpm': [{'path': '/mnt/koji/packages/less/590/3.oc9/data/signed/b1ee0065/x86_64/less-590-3.oc9.x86_64.rpm', 'flags': ['input', 'prepopulate']}, {'path': '/mnt/koji/packages/zsh/ t = threads_list = [, ] variant = Variant(id="AppStream", name="AppStream", type="variant", parent=None) variant_type = 'variant' variant_uid = 'HighAvailability' worker = .worker at 0x7f8d81c72400> Frame gather_wrapper in /usr/lib/python3.6/site-packages/pungi/phases/gather/__init__.py at line 803 796 parent_pkg_map[pkg_type].append(pkg) 797 return all_included_packages 798 799 800 def gather_wrapper(compose, package_sets, path_prefix): 801 result = {} 802 --> 803 _gather_variants(result, compose, "variant", package_sets) 804 _gather_variants(result, compose, "addon", package_sets, exclude_fulltree=True) 805 _gather_variants( 806 result, compose, "layered-product", package_sets, exclude_fulltree=True 807 ) 808 _gather_variants(result, compose, "optional", package_sets) 809 compose = package_sets = [] path_prefix = '/mnt/koji/' result = {'x86_64': {'BaseOS': {'rpm': [{'path': '/mnt/koji/packages/less/590/3.oc9/data/signed/b1ee0065/x86_64/less-590-3.oc9.x86_64.rpm', 'flags': ['input', 'prepopulate']}, {'path': '/mnt/koji/packages/zsh/ Frame run in /usr/lib/python3.6/site-packages/pungi/phases/gather/__init__.py at line 104 97 98 def _write_manifest(self): 99 self.compose.log_info("Writing RPM manifest: %s" % self.manifest_file) 100 self.manifest.dump(self.manifest_file) 101 102 def run(self): 103 pkg_map = gather_wrapper( --> 104 self.compose, self.pkgset_phase.package_sets, self.pkgset_phase.path_prefix 105 ) 106 107 for variant_uid in get_ordered_variant_uids(self.compose): 108 variant = self.compose.all_variants[variant_uid] 109 if variant.is_empty: 110 continue self = self._skipped = False self.compose = self.finished = False self.manifest = self.manifest_file = '/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1/compose/metadata/rpms.json' self.msg = '---------- PHASE: GATHER ----------' self.name = 'gather' self.pkgset_phase = self.used_patterns = None Frame start in /usr/lib/python3.6/site-packages/pungi/phases/base.py at line 63 56 self._skipped = self.skip() 57 if self._skipped: 58 self.compose.log_warning("[SKIP ] %s" % self.msg) 59 self.finished = True 60 return 61 self.compose.log_info("[BEGIN] %s" % self.msg) 62 self.compose.notifier.send("phase-start", phase_name=self.name) --> 63 self.run() 64 65 def get_config_block(self, variant, arch=None): 66 """In config for current phase, find a block corresponding to given 67 variant and arch. The arch should be given if and only if the config 68 uses variant/arch mapping. 69 """ self = self._skipped = False self.compose = self.finished = False self.manifest = self.manifest_file = '/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1/compose/metadata/rpms.json' self.msg = '---------- PHASE: GATHER ----------' self.name = 'gather' self.pkgset_phase = self.used_patterns = None Frame process in /usr/lib/python3.6/site-packages/pungi/phases/weaver.py at line 78 71 num, 72 self.pool.queue_total, 73 phases_names, 74 ) 75 self.pool.log_info("[BEGIN] %s" % (msg,)) 76 77 for phase in pipeline: --> 78 phase.start() 79 phase.stop() 80 81 self.pool.log_info("[DONE ] %s" % (msg,)) item = [, ] msg = 'Running pipeline (2/4). Phases: gather, createrepo' num = 2 phase = phases_names = 'gather, createrepo' pipeline = [, ] self = self._args = self._daemonic = False self._ident = 140244900116224 self._initialized = True self._is_stopped = True self._kwargs = {} self._name = 'Thread-57' self._started = self._stderr = <_io.TextIOWrapper name='' mode='w' encoding='UTF-8'> self._target = None self._tstate_lock = None self.daemon = False self.failed = True self.get_timeout = 1 self.ident = 140244900116224 self.kill = True self.name = 'Thread-57' self.pool = self.running = False Frame run in /usr/lib/python3.6/site-packages/kobo/threads.py at line 67 60 61 self.pool.queue_get_lock.acquire() 62 self.pool.queue_processed += 1 63 num = self.pool.queue_processed 64 self.pool.queue_get_lock.release() 65 66 try: --> 67 self.process(item, num) 68 except: 69 self.failed = True 70 self.pool.exceptions.append(sys.exc_info()) 71 self.pool.kill() 72 73 def process(self, item, num): item = [, ] num = 2 self = self._args = self._daemonic = False self._ident = 140244900116224 self._initialized = True self._is_stopped = True self._kwargs = {} self._name = 'Thread-57' self._started = self._stderr = <_io.TextIOWrapper name='' mode='w' encoding='UTF-8'> self._target = None self._tstate_lock = None self.daemon = False self.failed = True self.get_timeout = 1 self.ident = 140244900116224 self.kill = True self.name = 'Thread-57' self.pool = self.running = False Frame reraise in /usr/lib/python3.6/site-packages/six.py at line 693 686 687 def reraise(tp, value, tb=None): 688 try: 689 if value is None: 690 value = tp() 691 if value.__traceback__ is not tb: 692 raise value.with_traceback(tb) --> 693 raise value 694 finally: 695 value = None 696 tb = None 697 698 else: 699 def exec_(_code_, _globs_=None, _locs_=None): tb = None tp = value = None Frame stop in /usr/lib/python3.6/site-packages/kobo/threads.py at line 120 113 """ 114 for i in self.threads: 115 i.running = False 116 for i in self.threads: 117 i.join() 118 if self.exceptions: 119 exc_info = self.exceptions[0] --> 120 six.reraise(exc_info[0], exc_info[1], exc_info[2]) 121 122 def kill(self): 123 for i in self.threads: 124 i.kill = True 125 i.running = False 126 exc_info = i = self = self._logger = self.exceptions = [(, KeyError('HighAvailability',), )] self.queue = self.queue_get_lock = self.queue_processed = 4 self.queue_put_lock = self.queue_total = 4 self.threads = [, , , Frame stop in /usr/lib/python3.6/site-packages/pungi/phases/weaver.py at line 57 50 51 self.pool.start() 52 53 def stop(self): 54 if self.finished: 55 return 56 if hasattr(self, "pool"): --> 57 self.pool.stop() 58 self.finished = True 59 self.compose.log_info("[DONE ] %s" % self.msg) 60 61 62 class PipelineThread(WorkerThread): 63 """ self = self._phases_schema = self.compose = self.finished = False self.msg = '---------- PHASE: WEAVER ----------' self.name = 'weaver' self.pool = Frame run_compose in /usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py at line 495 488 buildinstall_phase, 489 (gather_phase, createrepo_phase), 490 extrafiles_phase, 491 (ostree_phase, ostree_installer_phase), 492 ) 493 essentials_phase = pungi.phases.WeaverPhase(compose, essentials_schema) 494 essentials_phase.start() --> 495 essentials_phase.stop() 496 497 # write treeinfo before ISOs are created 498 for variant in compose.get_variants(): 499 for arch in variant.arches + ["src"]: 500 pungi.metadata.write_tree_info( 501 compose, arch, variant, bi=buildinstall_phase buildinstall_phase = compose = config_copy_path = '/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1/logs/global/config-copy' config_dump_full = '/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1/logs/global/config-dump.global.log' config_file = '/root/opencloudos/compose/pungi-opencloudos/opencloudos/override.conf' create_latest_link = True createiso_phase = createrepo_phase = errors = [] essentials_phase = essentials_schema = extra_isos_phase = extrafiles_phase = f = <_io.TextIOWrapper name='/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1/logs/global/config-dump.global.log' mode='w' encoding='UTF-8'> gather_phase = image_build_phase = image_checksum_phase = image_container_phase = init_phase = latest_link_components = -1 latest_link_status = None liveimages_phase = livemedia_phase = osbs_phase = osbuild_phase = ostree_installer_phase = ostree_phase = phase = pkgset_phase = pungi = repoclosure_phase = test_phase = Frame main in /usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py at line 337 330 notifier.compose = compose 331 COMPOSE = compose 332 try: 333 run_compose( 334 compose, 335 create_latest_link=create_latest_link, 336 latest_link_status=latest_link_status, --> 337 latest_link_components=latest_link_components, 338 ) 339 except UnsignedPackagesError: 340 # There was an unsigned package somewhere. It is not safe to reuse any 341 # package set from this compose (since we could leak the unsigned 342 # package). Let's make sure all reuse files are deleted. 343 for fp in glob.glob(compose.paths.work.pkgset_reuse_file("*")): Compose = PHASES_NAMES_MODIFIED = ['buildinstall', 'createiso', 'createrepo', 'extra_files', 'extra_isos', 'gather', 'image_build', 'image_checksum', 'image_container', 'init', 'live_images', 'live_media', 'osbs', 'osbuild', 'ostree', abort = .abort at 0x7f8d848e0048> compose = compose_dir = '/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1' compose_type = 'production' conf = {'RELEASE_NAME': 'OpenCloudOS', 'RELEASE_SHORT': 'OpenCloudOS', 'RELEASE_VERSION': '9.0', 'PKGSET_KOJI_TAG': 'dist-oc9-compose', 'RUNROOT_CHANNEL': 'image', 'RUNROOT_TAG': 'dist-oc9-build', 'RELEASE_V create_latest_link = True errors = [] fail_to_start = .fail_to_start at 0x7f8d848d7ea0> group = kobo = latest_link_components = -1 latest_link_status = None logger = notifier = opts = Namespace(compose_dir=None, compose_type='production', config='/root/opencloudos/compose/pungi-opencloudos/oc-updates.conf', just_phase=[], koji_event=None, label='RC-9.0', latest_link_components=-1, parser = ArgumentParser(prog='pungi-koji', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) productmd = pungi = warning = 'WARNING: Unrecognized config option: RELEASE_VERSION_Z.' warnings = ["WARNING: Config option runroot was removed and has no effect; remove it. Please specify 'runroot_method' if you want to enable runroot, otherwise run things locally.", 'WARNING: Config option bootab Frame cli_main in /usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py at line 637 630 631 632 def cli_main(): 633 signal.signal(signal.SIGINT, sigterm_handler) 634 signal.signal(signal.SIGTERM, sigterm_handler) 635 636 try: --> 637 main() 638 except (Exception, KeyboardInterrupt) as ex: 639 if COMPOSE: 640 tb_path = COMPOSE.paths.log.log_file("global", "traceback") 641 COMPOSE.log_error("Compose run failed: %s" % ex) 642 COMPOSE.log_error("Extended traceback in: %s" % tb_path) 643 COMPOSE.log_critical("Compose failed: %s" % COMPOSE.topdir) ex = KeyError('HighAvailability',) f = <_io.BufferedWriter name='/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1/logs/global/traceback.global.log'> kobo = tb_path = '/mnt/koji/compose/9/OpenCloudOS-9.0-updates-20230928.1/logs/global/traceback.global.log'