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'