Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 648, in cli_main
main()
File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 338, in main
latest_link_components=latest_link_components,
File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 494, in run_compose
pkgset_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/pkgset/__init__.py", line 36, in run
self.package_sets, self.path_prefix = SourceClass(self.compose)()
File "/usr/lib/python3.6/site-packages/pungi/phases/pkgset/sources/source_koji.py", line 194, in __call__
self.compose, self.koji_wrapper, path_prefix
File "/usr/lib/python3.6/site-packages/pungi/phases/pkgset/sources/source_koji.py", line 201, in get_pkgset_from_koji
return populate_global_pkgset(compose, koji_wrapper, path_prefix, event_info)
File "/usr/lib/python3.6/site-packages/pungi/phases/pkgset/sources/source_koji.py", line 870, in populate_global_pkgset
include_packages=modular_packages,
File "/usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py", line 667, in populate
result = self.read_packages(result_rpms, result_srpms)
File "/usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py", line 203, in read_packages
self.raise_invalid_sigkeys_exception(self._invalid_sigkey_rpms)
File "/usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py", line 172, in raise_invalid_sigkeys_exception
"\n".join(get_error(k, v) for k, v in rpminfos.items())
pungi.errors.UnsignedPackagesError: RPM(s) not found for sigs: ('b1ee0065',). Check log for details. Unsigned packages:
java-17-konajdk-17.0.13-1.oc9
java-17-konajdk-demo-17.0.13-1.oc9
java-17-konajdk-devel-17.0.13-1.oc9
java-17-konajdk-headless-17.0.13-1.oc9
java-17-konajdk-javadoc-17.0.13-1.oc9
java-17-konajdk-javadoc-zip-17.0.13-1.oc9
java-17-konajdk-jmods-17.0.13-1.oc9
java-17-konajdk-src-17.0.13-1.oc9
Frame raise_invalid_sigkeys_exception in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py at line 172
165 "\n".join(sorted(set(nvr_formatter(rpminfo) for rpminfo in infos))),
166 )
167 )
168
169 if not isinstance(rpminfos, dict):
170 rpminfos = {self.sigkey_ordering: rpminfos}
171 raise UnsignedPackagesError(
--> 172 "\n".join(get_error(k, v) for k, v in rpminfos.items())
173 )
174
175 def read_packages(self, rpms, srpms):
176 srpm_pool = ReaderPool(self, self._logger)
177 rpm_pool = ReaderPool(self, self._logger)
178
get_error = .get_error at 0x7ff0730c3488>
nvr_formatter = .nvr_formatter at 0x7ff0730c37b8>
rpminfos = {('b1ee0065',): [{'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'pay
self =
self._allow_invalid_sigkeys = False
self._invalid_sigkey_rpms = [{'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'payloadhash': 'cec0
self._logger =
self.arches = {'athlon', 'x86_64', 'i486', 'src', 'i386', 'i686', 'i586', 'aarch64', 'noarch'}
self.cache_region =
self.extra_builds = []
self.extra_tasks = []
self.file_cache =
self.invalid_sigkey_rpms = [{'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'payloadhash': 'cec0
self.koji_proxy =
self.koji_wrapper =
self.name = 'dist-oc9-compose'
self.old_file_cache = None
self.packages = {'grub2-emu', 'google-noto-sans-thaana-fonts', 'bacula-director', 'perl-Dist-CheckConflicts', 'apiguardian-javadoc', 'rubygem-psych', 'iproute-tc', 'minizip-compat-devel', 'apache-commons-beanutils',
self.populate_only_packages = False
self.reuse = None
self.rpms_by_arch = {'src': [python-cleo-1.0.0-3.oc9.src.rpm, appstream-data-36-3.oc9.src.rpm, pkgconf-1.9.5-3.oc9.src.rpm, at-spi2-atk-2.38.0-3.oc9.src.rpm, containerd-1.6.9-4.oc9.src.rpm, sgpio-1.2.0.10-3.oc9.src.rpm,
self.sigkey_ordering = 'b1ee0065'
self.signed_packages_retries = 1
self.signed_packages_wait = 30
self.srpms_by_name = {'python-cleo-1.0.0-3.oc9.src.rpm': python-cleo-1.0.0-3.oc9.src.rpm, 'appstream-data-36-3.oc9.src.rpm': appstream-data-36-3.oc9.src.rpm, 'pkgconf-1.9.5-3.oc9.src.rpm': pkgconf-1.9.5-3.oc9.src.rpm, 'at
Frame read_packages in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py at line 203
196
197 self.log_debug("Package set: spawning %s worker threads (RPMs)" % thread_count)
198 rpm_pool.start()
199 rpm_pool.stop()
200 self.log_debug("Package set: worker threads stopped (RPMs)")
201
202 if not self._allow_invalid_sigkeys and self._invalid_sigkey_rpms:
--> 203 self.raise_invalid_sigkeys_exception(self._invalid_sigkey_rpms)
204
205 return self.rpms_by_arch
206
207 def subset(self, primary_arch, arch_list, exclusive_noarch=True):
208 """Create a subset of this package set that only includes
209 packages compatible with"""
i = 9
rpm_pool =
rpms = [({'arch': 'noarch', 'build_id': 14265, 'buildroot_id': 45786, 'buildtime': 1695099380, 'epoch': None, 'extra': None, 'id': 107325, 'metadata_only': False, 'name': 'appstream-data', 'payloadhash': '1f
self =
self._allow_invalid_sigkeys = False
self._invalid_sigkey_rpms = [{'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'payloadhash': 'cec0
self._logger =
self.arches = {'athlon', 'x86_64', 'i486', 'src', 'i386', 'i686', 'i586', 'aarch64', 'noarch'}
self.cache_region =
self.extra_builds = []
self.extra_tasks = []
self.file_cache =
self.invalid_sigkey_rpms = [{'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'payloadhash': 'cec0
self.koji_proxy =
self.koji_wrapper =
self.name = 'dist-oc9-compose'
self.old_file_cache = None
self.packages = {'grub2-emu', 'google-noto-sans-thaana-fonts', 'bacula-director', 'perl-Dist-CheckConflicts', 'apiguardian-javadoc', 'rubygem-psych', 'iproute-tc', 'minizip-compat-devel', 'apache-commons-beanutils',
self.populate_only_packages = False
self.reuse = None
self.rpms_by_arch = {'src': [python-cleo-1.0.0-3.oc9.src.rpm, appstream-data-36-3.oc9.src.rpm, pkgconf-1.9.5-3.oc9.src.rpm, at-spi2-atk-2.38.0-3.oc9.src.rpm, containerd-1.6.9-4.oc9.src.rpm, sgpio-1.2.0.10-3.oc9.src.rpm,
self.sigkey_ordering = 'b1ee0065'
self.signed_packages_retries = 1
self.signed_packages_wait = 30
self.srpms_by_name = {'python-cleo-1.0.0-3.oc9.src.rpm': python-cleo-1.0.0-3.oc9.src.rpm, 'appstream-data-36-3.oc9.src.rpm': appstream-data-36-3.oc9.src.rpm, 'pkgconf-1.9.5-3.oc9.src.rpm': pkgconf-1.9.5-3.oc9.src.rpm, 'at
srpm_pool =
srpms = [({'arch': 'src', 'build_id': 14265, 'buildroot_id': 45786, 'buildtime': 1695099373, 'epoch': None, 'extra': None, 'id': 107324, 'metadata_only': False, 'name': 'appstream-data', 'payloadhash': '766de
thread_count = 10
Frame populate in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py at line 667
660
661 if skipped_packages_count:
662 self.log_debug(
663 "Skipped %d packages, not marked as to be "
664 "included in a compose." % skipped_packages_count
665 )
666
--> 667 result = self.read_packages(result_rpms, result_srpms)
668
669 # Check that after reading the packages, every package that is
670 # included in a compose has the right sigkey.
671 if self._invalid_sigkey_rpms:
672 invalid_sigkey_rpms = [
673 rpm for rpm in self._invalid_sigkey_rpms if rpm["name"] in self.packages
build_id = 14265
build_info = {'build_id': 31378, 'completion_time': '2024-11-04 11:05:19.754973+08:00', 'create_event': 536993, 'creation_event_id': 536964, 'creation_time': '2024-11-04 10:53:37.800250+08:00', 'epoch': None, 'id'
build_name = 'appstream-data'
builds = [{'build_id': 31378, 'completion_time': '2024-11-04 11:05:19.754973+08:00', 'create_event': 536993, 'creation_event_id': 536964, 'creation_time': '2024-11-04 10:53:37.800250+08:00', 'epoch': None, 'id
builds_by_id = {31378: {'build_id': 31378, 'completion_time': '2024-11-04 11:05:19.754973+08:00', 'create_event': 536993, 'creation_event_id': 536964, 'creation_time': '2024-11-04 10:53:37.800250+08:00', 'epoch': No
event = 537055
exclude_build_id = []
extra_builds = []
extra_builds_by_name = {}
extra_rpms = []
include_packages = set()
inherit = False
msg = 'Getting latest RPMs (tag: dist-oc9-compose, event: 537055, inherit: False)'
result_rpms = [({'arch': 'noarch', 'build_id': 14265, 'buildroot_id': 45786, 'buildtime': 1695099380, 'epoch': None, 'extra': None, 'id': 107325, 'metadata_only': False, 'name': 'appstream-data', 'payloadhash': '1f
result_srpms = [({'arch': 'src', 'build_id': 14265, 'buildroot_id': 45786, 'buildtime': 1695099373, 'epoch': None, 'extra': None, 'id': 107324, 'metadata_only': False, 'name': 'appstream-data', 'payloadhash': '766de
rpm_info = {'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'payloadhash': 'cec03
rpms = [{'arch': 'src', 'build_id': 14265, 'buildroot_id': 45786, 'buildtime': 1695099373, 'epoch': None, 'extra': None, 'id': 107324, 'metadata_only': False, 'name': 'appstream-data', 'payloadhash': '766de7
self =
self._allow_invalid_sigkeys = False
self._invalid_sigkey_rpms = [{'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'payloadhash': 'cec0
self._logger =
self.arches = {'athlon', 'x86_64', 'i486', 'src', 'i386', 'i686', 'i586', 'aarch64', 'noarch'}
self.cache_region =
self.extra_builds = []
self.extra_tasks = []
self.file_cache =
self.invalid_sigkey_rpms = [{'arch': 'src', 'build_id': 31378, 'buildroot_id': 118616, 'buildtime': 1730688873, 'epoch': None, 'extra': None, 'id': 263747, 'metadata_only': False, 'name': 'java-17-konajdk', 'payloadhash': 'cec0
self.koji_proxy =
self.koji_wrapper =
self.name = 'dist-oc9-compose'
self.old_file_cache = None
self.packages = {'grub2-emu', 'google-noto-sans-thaana-fonts', 'bacula-director', 'perl-Dist-CheckConflicts', 'apiguardian-javadoc', 'rubygem-psych', 'iproute-tc', 'minizip-compat-devel', 'apache-commons-beanutils',
self.populate_only_packages = False
self.reuse = None
self.rpms_by_arch = {'src': [python-cleo-1.0.0-3.oc9.src.rpm, appstream-data-36-3.oc9.src.rpm, pkgconf-1.9.5-3.oc9.src.rpm, at-spi2-atk-2.38.0-3.oc9.src.rpm, containerd-1.6.9-4.oc9.src.rpm, sgpio-1.2.0.10-3.oc9.src.rpm,
self.sigkey_ordering = 'b1ee0065'
self.signed_packages_retries = 1
self.signed_packages_wait = 30
self.srpms_by_name = {'python-cleo-1.0.0-3.oc9.src.rpm': python-cleo-1.0.0-3.oc9.src.rpm, 'appstream-data-36-3.oc9.src.rpm': appstream-data-36-3.oc9.src.rpm, 'pkgconf-1.9.5-3.oc9.src.rpm': pkgconf-1.9.5-3.oc9.src.rpm, 'at
skipped_arches = []
skipped_packages_count = 0
tag = 'dist-oc9-compose'
Frame populate_global_pkgset in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/sources/source_koji.py at line 870
863 )
864
865 if pkgset.reuse is None:
866 pkgset.populate(
867 compose_tag,
868 event,
869 inherit=should_inherit,
--> 870 include_packages=modular_packages,
871 )
872 for variant in compose.all_variants.values():
873 if compose_tag in variant_tags[variant]:
874
875 # If it's a modular tag, store the package set for the module.
876 for nsvc, koji_tag in variant.module_uid_to_koji_tag.items():
all_arches = {'athlon', 'x86_64', 'i486', 'src', 'i386', 'i686', 'i586', 'aarch64', 'noarch'}
allow_invalid_sigkeys = False
compose =
compose_tag = 'dist-oc9-compose'
compose_tags = ['dist-oc9-compose']
comps =
event = {'id': 537055, 'ts': 1730704010.72043}
exclude_module_ns = []
extra_builds = []
extra_modules = []
extra_tasks = []
group = 'gnome-desktop'
groups = ['virtualization-tools', 'hardware-monitoring', 'server-product', 'graphical-admin-tools', 'infiniband', 'network-file-system-client', 'hardware-support', 'security-tools', 'system-tools', 'c-developm
inherit = False
inherit_modules = False
is_traditional = True
koji_wrapper =
modular_koji_tags = []
modular_packages = set()
old_cache_path = None
packages_to_gather = ['grub2-emu', 'google-noto-sans-thaana-fonts', 'bacula-director', 'perl-Dist-CheckConflicts', 'apiguardian-javadoc', 'rubygem-psych', 'iproute-tc', 'minizip-compat-devel', 'apache-commons-beanutils',
path_prefix = '/mnt/koji/'
pkgset =
pkgset_koji_tags = ['dist-oc9-compose']
pkgsets = []
populate_only_packages_to_gather = False
should_inherit = False
tag_to_mmd = {}
variant = Variant(id="Minimal", name="Minimal", type="variant", parent=None)
variant_scratch_modules = []
variant_tags = {Variant(id="AppStream", name="AppStream", type="variant", parent=None): ['dist-oc9-compose'], Variant(id="BaseOS", name="BaseOS", type="variant", parent=None): ['dist-oc9-compose'], Variant(id="Minim
Frame get_pkgset_from_koji in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/sources/source_koji.py at line 201
194 self.compose, self.koji_wrapper, path_prefix
195 )
196 return (package_sets, path_prefix)
197
198
199 def get_pkgset_from_koji(compose, koji_wrapper, path_prefix):
200 event_info = get_koji_event_info(compose, koji_wrapper)
--> 201 return populate_global_pkgset(compose, koji_wrapper, path_prefix, event_info)
202
203
204 def _add_module_to_variant(
205 koji_wrapper,
206 variant,
207 build,
compose =
event_info = {'id': 537055, 'ts': 1730704010.72043}
koji_wrapper =
path_prefix = '/mnt/koji/'
Frame __call__ in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/sources/source_koji.py at line 194
187 def __call__(self):
188 compose = self.compose
189 koji_profile = compose.conf["koji_profile"]
190 self.koji_wrapper = pungi.wrappers.kojiwrapper.KojiWrapper(koji_profile)
191 # path prefix must contain trailing '/'
192 path_prefix = self.koji_wrapper.koji_module.config.topdir.rstrip("/") + "/"
193 package_sets = get_pkgset_from_koji(
--> 194 self.compose, self.koji_wrapper, path_prefix
195 )
196 return (package_sets, path_prefix)
197
198
199 def get_pkgset_from_koji(compose, koji_wrapper, path_prefix):
200 event_info = get_koji_event_info(compose, koji_wrapper)
compose =
koji_profile = 'koji'
path_prefix = '/mnt/koji/'
self =
self.compose =
self.koji_wrapper =
Frame run in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/__init__.py at line 36
29 self.path_prefix = None
30
31 def run(self):
32 from . import sources
33
34 SourceClass = sources.ALL_SOURCES[self.compose.conf["pkgset_source"].lower()]
35
--> 36 self.package_sets, self.path_prefix = SourceClass(self.compose)()
37
38 def validate(self):
39 extra_tasks = self.compose.conf.get("pkgset_koji_scratch_tasks", None)
40 sigkeys = tuple(self.compose.conf["sigkeys"] or [None])
41 if extra_tasks is not None and None not in sigkeys and "" not in sigkeys:
42 raise ValueError(
SourceClass =
self =
self._skipped = False
self.compose =
self.finished = False
self.msg = '---------- PHASE: PKGSET ----------'
self.name = 'pkgset'
self.package_sets = []
self.path_prefix = None
self.used_patterns = None
sources =
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.msg = '---------- PHASE: PKGSET ----------'
self.name = 'pkgset'
self.package_sets = []
self.path_prefix = None
self.used_patterns = None
Frame run_compose in /usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py at line 494
487 break
488 else:
489 print("Not in RV_SPECAIL")
490
491 init_phase.start()
492 init_phase.stop()
493
--> 494 pkgset_phase.start()
495 pkgset_phase.stop()
496
497 # WEAVER phase - launches other phases which can safely run in parallel
498 essentials_schema = (
499 buildinstall_phase,
500 (gather_phase, createrepo_phase),
buildinstall_phase =
combination =
compose =
config_copy_path = '/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-updates-20241104.1/logs/global/config-copy'
config_dump_full = '/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-updates-20241104.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 = []
extra_isos_phase =
extrafiles_phase =
f = <_io.TextIOWrapper name='/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-updates-20241104.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 338
331 notifier.compose = compose
332 COMPOSE = compose
333 try:
334 run_compose(
335 compose,
336 create_latest_link=create_latest_link,
337 latest_link_status=latest_link_status,
--> 338 latest_link_components=latest_link_components,
339 )
340 except UnsignedPackagesError:
341 # There was an unsigned package somewhere. It is not safe to reuse any
342 # package set from this compose (since we could leak the unsigned
343 # package). Let's make sure all reuse files are deleted.
344 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 0x7ff0a7c5aea0>
compose =
compose_dir = '/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-updates-20241104.1'
compose_type = 'production'
conf = {'RELEASE_NAME': 'OpenCloudOS', 'RELEASE_SHORT': 'OpenCloudOS', 'RELEASE_VERSION': '9.2', '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 0x7ff0a7c5ae18>
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.2', 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: GATHER_PREPOPULATE_BRANCH.'
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 648
641
642
643 def cli_main():
644 signal.signal(signal.SIGINT, sigterm_handler)
645 signal.signal(signal.SIGTERM, sigterm_handler)
646
647 try:
--> 648 main()
649 except (Exception, KeyboardInterrupt) as ex:
650 if COMPOSE:
651 tb_path = COMPOSE.paths.log.log_file("global", "traceback")
652 COMPOSE.log_error("Compose run failed: %s" % ex)
653 COMPOSE.log_error("Extended traceback in: %s" % tb_path)
654 COMPOSE.log_critical("Compose failed: %s" % COMPOSE.topdir)
ex = UnsignedPackagesError("RPM(s) not found for sigs: ('b1ee0065',). Check log for details. Unsigned packages:\njava-17-konajdk-17.0.13-1.oc9\njava-17-konajdk-demo-17.0.13-1.oc9\njava-17-konajdk-devel-17.
f = <_io.BufferedWriter name='/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-updates-20241104.1/logs/global/traceback.global.log'>
kobo =
tb_path = '/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-updates-20241104.1/logs/global/traceback.global.log'