Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 654, in cli_main
main()
File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 343, in main
latest_link_components=latest_link_components,
File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 512, 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 79, in process
phase.stop()
File "/usr/lib/python3.6/site-packages/pungi/phases/base.py", line 108, 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/buildinstall.py", line 546, in process
self.worker(compose, arch, variant, cmd, pkgset_phase, num)
File "/usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py", line 886, in worker
self.copy_files(compose, variant, arch)
File "/usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py", line 922, in copy_files
self.pool.kickstart_file,
File "/usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py", line 471, in tweak_buildinstall
safe_rmtree(tmp_dir)
File "/usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py", line 469, in safe_rmtree
raise OSError(f"?? {directory} ?????? {retries} ?")
OSError: ?? /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny ?????? 3 ?
Frame safe_rmtree in /usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py at line 469
462 try:
463 shutil.rmtree(directory)
464 if not os.path.exists(directory):
465 return
466 except OSError as e:
467 print(f"? {i+1}/{retries} ????? {directory} ??: {e}")
468 time.sleep(delay)
--> 469 raise OSError(f"?? {directory} ?????? {retries} ?")
470
471 safe_rmtree(tmp_dir)
472 #shutil.rmtree(tmp_dir)
473
474
475 def link_boot_iso(compose, arch, variant, can_fail):
delay = 1
directory = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny'
i = 2
retries = 3
Frame tweak_buildinstall in /usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py at line 471
464 if not os.path.exists(directory):
465 return
466 except OSError as e:
467 print(f"? {i+1}/{retries} ????? {directory} ??: {e}")
468 time.sleep(delay)
469 raise OSError(f"?? {directory} ?????? {retries} ?")
470
--> 471 safe_rmtree(tmp_dir)
472 #shutil.rmtree(tmp_dir)
473
474
475 def link_boot_iso(compose, arch, variant, can_fail):
476 if arch == "src":
477 return
arch = 'x86_64'
cmd = 'cp -dRv --preserve=mode,links,timestamps --remove-destination /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny/* /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-
compose =
config = 'EFI/BOOT/grub.cfg'
config_in_image = '/tmp/iso-mount-kl7_ox1n/EFI/BOOT/grub.cfg'
config_path = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny/EFI/BOOT/grub.cfg'
dst = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/compose/Minimal/x86_64/os'
found_configs = ['EFI/BOOT/grub.cfg']
image = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny/images/efiboot.img'
images = ['/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny/images/efiboot.img']
kickstart_file = None
label = ''
mount_tmp_dir = '/tmp/iso-mount-kl7_ox1n'
safe_rmtree = .safe_rmtree at 0x7f2d917aaa60>
src = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/x86_64/buildinstall/Minimal'
tmp_dir = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny'
variant = 'Minimal'
volid = 'OC-9-6-x86_64'
Frame copy_files in /usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py at line 922
915 compose,
916 buildinstall_dir,
917 os_tree,
918 arch,
919 var.uid,
920 label,
921 volid,
--> 922 self.pool.kickstart_file,
923 )
924 link_boot_iso(compose, arch, var, can_fail)
925
926
927 def _get_log_dir(compose, variant, arch):
928 """Find directory where to store lorax logs in. If it's inside the compose,
arch = 'x86_64'
buildinstall_dir = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/x86_64/buildinstall/Minimal'
can_fail = False
compose =
disc_type = 'dvd'
label = ''
os_tree = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/compose/Minimal/x86_64/os'
self =
self._args =
self._daemonic = False
self._ident = 139832740534016
self._initialized = True
self._is_stopped = True
self._kwargs = {}
self._name = 'Thread-69'
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 = 139832740534016
self.kill = True
self.name = 'Thread-69'
self.pool =
self.running = False
var = Variant(id="Minimal", name="Minimal", type="variant", parent=None)
variant = Variant(id="Minimal", name="Minimal", type="variant", parent=None)
variants = [Variant(id="Minimal", name="Minimal", type="variant", parent=None)]
volid = 'OC-9-6-x86_64'
Frame worker in /usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py at line 886
879 move_all(log_dir, final_log_dir, rm_src_dir=True)
880
881 rpms = runroot.get_buildroot_rpms()
882 self._write_buildinstall_metadata(
883 compose, arch, variant, cmd, rpms, pkgset_phase
884 )
885
--> 886 self.copy_files(compose, variant, arch)
887
888 self.pool.finished_tasks.add((variant.uid if variant else None, arch))
889
890 self.pool.log_info("[DONE ] %s" % msg)
891
892 def copy_files(self, compose, variant, arch):
arch = 'x86_64'
buildinstall_method = 'lorax'
chown_paths = ['/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/x86_64/buildinstall/Minimal', '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/logs/x86_64/buildinstall-Minimal-logs']
cmd = 'rm -rf /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/x86_64/buildinstall/Minimal && lorax --product=OpenCloudOS --version=9.6 --release=9.6 --source=file:///mnt/koji/compose/9/9.6/OpenCloud
compose =
final_output_dir = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/x86_64/buildinstall/Minimal'
log_file = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/logs/x86_64/buildinstall-Minimal.x86_64.log'
log_filename = 'buildinstall-Minimal'
lorax_log_dir = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/logs/x86_64/buildinstall-Minimal-logs'
lorax_use_koji_plugin = False
msg = 'Running buildinstall for arch x86_64, variant Minimal'
num = 6
output_dir = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/x86_64/buildinstall/Minimal'
packages = ['lorax']
pkgset_phase =
rpms = ['alternatives-1.25-4.oc9.x86_64', 'audit-libs-3.1.2-3.oc9.x86_64', 'authselect-1.4.3-7.oc9.ap.1.x86_64', 'authselect-libs-1.4.3-7.oc9.ap.1.x86_64', 'basesystem-1-8.oc9.noarch', 'bash-5.2.15-7.oc9.x86
runroot =
self =
self._args =
self._daemonic = False
self._ident = 139832740534016
self._initialized = True
self._is_stopped = True
self._kwargs = {}
self._name = 'Thread-69'
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 = 139832740534016
self.kill = True
self.name = 'Thread-69'
self.pool =
self.running = False
variant = Variant(id="Minimal", name="Minimal", type="variant", parent=None)
Frame process in /usr/lib/python3.6/site-packages/pungi/phases/buildinstall.py at line 546
539 class BuildinstallThread(WorkerThread):
540 def process(self, item, num):
541 # The variant is None unless lorax is used as buildinstall method.
542 compose, arch, variant, cmd, pkgset_phase = item
543 can_fail = compose.can_fail(variant, arch, "buildinstall")
544 with failable(compose, can_fail, variant, arch, "buildinstall"):
545 try:
--> 546 self.worker(compose, arch, variant, cmd, pkgset_phase, num)
547 except RuntimeError:
548 self._print_depsolve_error(compose, arch, variant)
549 raise
550
551 def _print_depsolve_error(self, compose, arch, variant):
552 try:
arch = 'x86_64'
can_fail = False
cmd = 'rm -rf /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/x86_64/buildinstall/Minimal && lorax --product=OpenCloudOS --version=9.6 --release=9.6 --source=file:///mnt/koji/compose/9/9.6/OpenCloud
compose =
item =
num = 6
pkgset_phase =
self =
self._args =
self._daemonic = False
self._ident = 139832740534016
self._initialized = True
self._is_stopped = True
self._kwargs = {}
self._name = 'Thread-69'
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 = 139832740534016
self.kill = True
self.name = 'Thread-69'
self.pool =
self.running = False
variant = Variant(id="Minimal", name="Minimal", type="variant", parent=None)
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 = 6
self =
self._args =
self._daemonic = False
self._ident = 139832740534016
self._initialized = True
self._is_stopped = True
self._kwargs = {}
self._name = 'Thread-69'
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 = 139832740534016
self.kill = True
self.name = 'Thread-69'
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 = [(, OSError('?? /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny ?????? 3 ?',), ), (
self.finished_tasks = {('BaseOS', 'loongarch64'), ('Minimal', 'loongarch64')}
self.kickstart_file = None
self.queue =
self.queue_get_lock =
self.queue_processed = 6
self.queue_put_lock =
self.queue_total = 6
self.threads = [, , ,
Frame stop in /usr/lib/python3.6/site-packages/pungi/phases/base.py at line 108
101 "Note that variants can be excluded in configuration file"
102 )
103
104 def stop(self):
105 if self.finished:
106 return
107 if hasattr(self, "pool"):
--> 108 self.pool.stop()
109 self.finished = True
110 self.compose.log_info("[DONE ] %s" % self.msg)
111 if self.used_patterns is not None:
112 # We only want to report this if the config was actually queried.
113 self.report_unused_patterns()
114 self.compose.notifier.send("phase-stop", phase_name=self.name)
self =
self._skipped = False
self.buildinstall_method = 'lorax'
self.compose =
self.finished = False
self.lorax_use_koji_plugin = False
self.msg = '---------- PHASE: BUILDINSTALL ----------'
self.name = 'buildinstall'
self.pkgset_phase =
self.pool =
self.used_lorax = True
self.used_patterns = None
self.warned_skipped = False
Frame process in /usr/lib/python3.6/site-packages/pungi/phases/weaver.py at line 79
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 (1/4). Phases: buildinstall'
num = 1
phase =
phases_names = 'buildinstall'
pipeline = []
self =
self._args =
self._daemonic = False
self._ident = 139832757319424
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 = 139832757319424
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 = 1
self =
self._args =
self._daemonic = False
self._ident = 139832757319424
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 = 139832757319424
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 = [(, OSError('?? /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny ?????? 3 ?',), )]
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 512
505 buildinstall_phase,
506 (gather_phase, createrepo_phase),
507 extrafiles_phase,
508 (ostree_phase, ostree_installer_phase),
509 )
510 essentials_phase = pungi.phases.WeaverPhase(compose, essentials_schema)
511 essentials_phase.start()
--> 512 essentials_phase.stop()
513
514 # write treeinfo before ISOs are created
515 for variant in compose.get_variants():
516 for arch in variant.arches + ["src"]:
517 pungi.metadata.write_tree_info(
518 compose, arch, variant, bi=buildinstall_phase
buildinstall_phase =
compose =
config_copy_path = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/logs/global/config-copy'
config_dump_full = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/logs/global/config-dump.global.log'
config_file = '/data/doriscchao/pungi-opencloudos/opencloudos/filter.conf'
create_latest_link = True
createiso_phase =
createrepo_phase =
distro = 'OpenCloudOS'
errors = []
essentials_phase =
essentials_schema =
extra_isos_phase =
extrafiles_phase =
f = <_io.TextIOWrapper name='/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/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 =
major_ver = '9'
major_version = '9'
osbs_phase =
osbuild_phase =
ostree_installer_phase =
ostree_phase =
phase =
pkgset_phase =
pungi =
release_name = 'OpenCloudOS'
release_version = '9.6'
repoclosure_phase =
test_phase =
Frame main in /usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py at line 343
336 notifier.compose = compose
337 COMPOSE = compose
338 try:
339 run_compose(
340 compose,
341 create_latest_link=create_latest_link,
342 latest_link_status=latest_link_status,
--> 343 latest_link_components=latest_link_components,
344 )
345 except UnsignedPackagesError:
346 # There was an unsigned package somewhere. It is not safe to reuse any
347 # package set from this compose (since we could leak the unsigned
348 # package). Let's make sure all reuse files are deleted.
349 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 0x7f2d92ea9ea0>
compose =
compose_dir = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0'
compose_type = 'production'
conf = {'RELEASE_NAME': 'OpenCloudOS', 'RELEASE_SHORT': 'OpenCloudOS', 'RELEASE_VERSION': '9.6', 'PKGSET_KOJI_TAG': 'dist-oc9-pre', 'RUNROOT_CHANNEL': 'image', 'RUNROOT_TAG': 'dist-oc9-pre-build', 'RELEASE_V
create_latest_link = True
errors = []
fail_to_start = .fail_to_start at 0x7f2d92ea9e18>
group =
kobo =
latest_link_components = -1
latest_link_status = None
logger =
notifier =
opts = Namespace(compose_dir=None, compose_type='production', config='/data/doriscchao/pungi-opencloudos/oc.conf', just_phase=[], koji_event=None, label='RC-9.6', latest_link_components=-1, latest_link_statu
parser = ArgumentParser(prog='pungi-koji', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True)
productmd =
pungi =
warning = 'WARNING: Unrecognized config option: VARIANTS_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 654
647
648
649 def cli_main():
650 signal.signal(signal.SIGINT, sigterm_handler)
651 signal.signal(signal.SIGTERM, sigterm_handler)
652
653 try:
--> 654 main()
655 except (Exception, KeyboardInterrupt) as ex:
656 if COMPOSE:
657 tb_path = COMPOSE.paths.log.log_file("global", "traceback")
658 COMPOSE.log_error("Compose run failed: %s" % ex)
659 COMPOSE.log_error("Extended traceback in: %s" % tb_path)
660 COMPOSE.log_critical("Compose failed: %s" % COMPOSE.topdir)
ex = OSError('?? /mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/work/global/tmp/tweak_buildinstall__pfa4cny ?????? 3 ?',)
f = <_io.BufferedWriter name='/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/logs/global/traceback.global.log'>
kobo =
tb_path = '/mnt/koji/compose/9/9.6/OpenCloudOS-9.6-20260514.0/logs/global/traceback.global.log'