Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen chunked=chunked) File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 384, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 380, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1361, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 311, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 272, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "/usr/lib64/python3.6/socket.py", line 586, in readinto return self._sock.recv_into(b) File "/usr/lib64/python3.6/ssl.py", line 971, in recv_into return self.read(nbytes, buffer) File "/usr/lib64/python3.6/ssl.py", line 833, in read return self._sslobj.read(len, buffer) File "/usr/lib64/python3.6/ssl.py", line 590, in read v = self._sslobj.read(len, buffer) File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 638, in sigterm_handler sys.stdout.flush() BrokenPipeError: [Errno 32] Broken pipe During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 449, in send timeout=timeout File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 638, in urlopen _stacktrace=sys.exc_info()[2]) File "/usr/lib/python3.6/site-packages/urllib3/util/retry.py", line 368, in increment raise six.reraise(type(error), error, _stacktrace) File "/usr/lib/python3.6/site-packages/urllib3/packages/six.py", line 692, in reraise raise value.with_traceback(tb) File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen chunked=chunked) File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 384, in _make_request six.raise_from(e, None) File "", line 3, in raise_from File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 380, in _make_request httplib_response = conn.getresponse() File "/usr/lib64/python3.6/http/client.py", line 1361, in getresponse response.begin() File "/usr/lib64/python3.6/http/client.py", line 311, in begin version, status, reason = self._read_status() File "/usr/lib64/python3.6/http/client.py", line 272, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "/usr/lib64/python3.6/socket.py", line 586, in readinto return self._sock.recv_into(b) File "/usr/lib64/python3.6/ssl.py", line 971, in recv_into return self.read(nbytes, buffer) File "/usr/lib64/python3.6/ssl.py", line 833, in read return self._sslobj.read(len, buffer) File "/usr/lib64/python3.6/ssl.py", line 590, in read v = self._sslobj.read(len, buffer) File "/usr/lib/python3.6/site-packages/pungi/scripts/pungi_koji.py", line 638, in sigterm_handler sys.stdout.flush() urllib3.exceptions.ProtocolError: ('Connection aborted.', BrokenPipeError(32, 'Broken pipe')) During handling of the above exception, another exception occurred: 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 583, in populate rpms, builds = self.get_latest_rpms(tag, event, inherit=inherit) File "/usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py", line 497, in get_latest_rpms tag, event=event, inherit=inherit, latest=True File "/usr/lib/python3.6/site-packages/koji/__init__.py", line 2350, in __call__ return self.__func(self.__name, args, opts) File "/usr/lib/python3.6/site-packages/koji/__init__.py", line 2829, in _callMethod return self._sendCall(handler, headers, request) File "/usr/lib/python3.6/site-packages/koji/__init__.py", line 2747, in _sendCall raise e File "/usr/lib/python3.6/site-packages/koji/__init__.py", line 2743, in _sendCall return self._sendOneCall(handler, headers, request) File "/usr/lib/python3.6/site-packages/koji/__init__.py", line 2790, in _sendOneCall r = self.rsession.post(handler, **callopts) File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 581, in post return self.request('POST', url, data=data, json=json, **kwargs) File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 533, in request resp = self.send(prep, **send_kwargs) File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 646, in send r = adapter.send(request, **kwargs) File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 498, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', BrokenPipeError(32, 'Broken pipe')) Frame send in /usr/lib/python3.6/site-packages/requests/adapters.py at line 498 491 except: 492 # If we hit any problems here, clean up the connection. 493 # Then, reraise so that we can handle the actual exception. 494 low_conn.close() 495 raise 496 497 except (ProtocolError, socket.error) as err: --> 498 raise ConnectionError(err, request=request) 499 500 except MaxRetryError as e: 501 if isinstance(e.reason, ConnectTimeoutError): 502 # TODO: Remove this in 3.0.0: see #2811 503 if not isinstance(e.reason, NewConnectionError): 504 raise ConnectTimeout(e, request=request) cert = None chunked = False conn = proxies = OrderedDict() request = self = self._pool_block = False self._pool_connections = 10 self._pool_maxsize = 10 self.config = {} self.max_retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) self.poolmanager = self.proxy_manager = {} stream = True timeout = url = '/kojihub' verify = True Frame send in /usr/lib/python3.6/site-packages/requests/sessions.py at line 646 639 # Get the appropriate adapter to use 640 adapter = self.get_adapter(url=request.url) 641 642 # Start time (approximately) of the request 643 start = preferred_clock() 644 645 # Send the request --> 646 r = adapter.send(request, **kwargs) 647 648 # Total elapsed time of the request (approximately) 649 elapsed = preferred_clock() - start 650 r.elapsed = timedelta(seconds=elapsed) 651 652 # Response manipulation hooks adapter = allow_redirects = True hooks = {'response': []} kwargs = {'timeout': 43200, 'verify': True, 'proxies': OrderedDict(), 'stream': True, 'cert': None} request = self = self.adapters = OrderedDict([('https://', ), ('http://', )]) self.auth = None self.cert = None self.cookies = self.headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} self.hooks = {'response': []} self.max_redirects = 30 self.params = {} self.proxies = {} self.stream = False self.trust_env = True self.verify = True start = 1726739629.2548418 stream = True Frame request in /usr/lib/python3.6/site-packages/requests/sessions.py at line 533 526 527 # Send the request. 528 send_kwargs = { 529 'timeout': timeout, 530 'allow_redirects': allow_redirects, 531 } 532 send_kwargs.update(settings) --> 533 resp = self.send(prep, **send_kwargs) 534 535 return resp 536 537 def get(self, url, **kwargs): 538 r"""Sends a GET request. Returns :class:`Response` object. 539 allow_redirects = True auth = None cert = None cookies = None data = b"\n\nlistTaggedRPMS\n\n\ndist-oc9-compose\n\n\n\n\n proxies = {} req = self = self.adapters = OrderedDict([('https://', ), ('http://', )]) self.auth = None self.cert = None self.cookies = self.headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} self.hooks = {'response': []} self.max_redirects = 30 self.params = {} self.proxies = {} self.stream = False self.trust_env = True self.verify = True send_kwargs = {'timeout': 43200, 'allow_redirects': True, 'verify': True, 'proxies': OrderedDict(), 'stream': True, 'cert': None} settings = {'verify': True, 'proxies': OrderedDict(), 'stream': True, 'cert': None} stream = True timeout = 43200 url = 'https://build.opencloudos.tech/kojihub' verify = None Frame post in /usr/lib/python3.6/site-packages/requests/sessions.py at line 581 574 :param data: (optional) Dictionary, list of tuples, bytes, or file-like 575 object to send in the body of the :class:`Request`. 576 :param json: (optional) json to send in the body of the :class:`Request`. 577 :param \*\*kwargs: Optional arguments that ``request`` takes. 578 :rtype: requests.Response 579 """ 580 --> 581 return self.request('POST', url, data=data, json=json, **kwargs) 582 583 def put(self, url, data=None, **kwargs): 584 r"""Sends a PUT request. Returns :class:`Response` object. 585 586 :param url: URL for the new :class:`Request` object. 587 :param data: (optional) Dictionary, list of tuples, bytes, or file-like data = b"\n\nlistTaggedRPMS\n\n\ndist-oc9-compose\n\n\n\n\n self.adapters = OrderedDict([('https://', ), ('http://', )]) self.auth = None self.cert = None self.cookies = self.headers = {'User-Agent': 'python-requests/2.22.0', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} self.hooks = {'response': []} self.max_redirects = 30 self.params = {} self.proxies = {} self.stream = False self.trust_env = True self.verify = True url = 'https://build.opencloudos.tech/kojihub' Frame _sendOneCall in /usr/lib/python3.6/site-packages/koji/__init__.py at line 2790 2783 # convert to hex-string 2784 _val = '0x' + _val.hex() 2785 if len(_val) > 1024: 2786 _val = _val[:1024] + '...' 2787 self.logger.debug("%s: %r" % (_key, _val)) 2788 with warnings.catch_warnings(): 2789 warnings.simplefilter("ignore") --> 2790 r = self.rsession.post(handler, **callopts) 2791 r.raise_for_status() 2792 try: 2793 ret = self._read_xmlrpc_response(r) 2794 finally: 2795 r.close() 2796 return ret auth = None callopts = {'headers': {'User-Agent': 'koji/1', 'Content-Type': 'text/xml', 'Content-Length': '526'}, 'data': b"\n\nlistTaggedRPMS\n\n\n\n\nlistTaggedRPMS\n\n\ndist-oc9-compose\n\n\n\n\n self._apidoc = None self._calls = [] self.authtype = None self.baseurl = 'https://build.opencloudos.tech/kojihub' self.callnum = None self.logged_in = False self.logger = self.opts = {'timeout': 43200, 'max_retries': 30, 'retry_interval': 20, 'anon_retry': False, 'offline_retry': False, 'offline_retry_interval': 20, 'debug': False, 'debug_xmlrpc': False, 'serverca': '', 'use_fast_ self.retries = 1 self.rsession = self.sinfo = None timeout = 43200 verify = '' Frame _sendCall in /usr/lib/python3.6/site-packages/koji/__init__.py at line 2743 2736 exc.request.url = self._sanitize_url(exc.request.url) 2737 return exc 2738 2739 def _sendCall(self, handler, headers, request): 2740 # handle expired connections 2741 for i in (0, 1): 2742 try: --> 2743 return self._sendOneCall(handler, headers, request) 2744 except Exception as e: 2745 e = self._sanitize_connection_error(e) 2746 if i or not is_conn_error(e): 2747 raise e 2748 self.logger.debug("Connection Error: %s", e) 2749 self.new_session() handler = 'https://build.opencloudos.tech/kojihub' headers = [('User-Agent', 'koji/1'), ('Content-Type', 'text/xml'), ('Content-Length', '526')] i = 1 request = b"\n\nlistTaggedRPMS\n\n\ndist-oc9-compose\n\n\n\n\n self._apidoc = None self._calls = [] self.authtype = None self.baseurl = 'https://build.opencloudos.tech/kojihub' self.callnum = None self.logged_in = False self.logger = self.opts = {'timeout': 43200, 'max_retries': 30, 'retry_interval': 20, 'anon_retry': False, 'offline_retry': False, 'offline_retry_interval': 20, 'debug': False, 'debug_xmlrpc': False, 'serverca': '', 'use_fast_ self.retries = 1 self.rsession = self.sinfo = None Frame _sendCall in /usr/lib/python3.6/site-packages/koji/__init__.py at line 2747 2740 # handle expired connections 2741 for i in (0, 1): 2742 try: 2743 return self._sendOneCall(handler, headers, request) 2744 except Exception as e: 2745 e = self._sanitize_connection_error(e) 2746 if i or not is_conn_error(e): --> 2747 raise e 2748 self.logger.debug("Connection Error: %s", e) 2749 self.new_session() 2750 2751 def _sendOneCall(self, handler, headers, request): 2752 headers = dict(headers) 2753 callopts = { handler = 'https://build.opencloudos.tech/kojihub' headers = [('User-Agent', 'koji/1'), ('Content-Type', 'text/xml'), ('Content-Length', '526')] i = 1 request = b"\n\nlistTaggedRPMS\n\n\ndist-oc9-compose\n\n\n\n\n self._apidoc = None self._calls = [] self.authtype = None self.baseurl = 'https://build.opencloudos.tech/kojihub' self.callnum = None self.logged_in = False self.logger = self.opts = {'timeout': 43200, 'max_retries': 30, 'retry_interval': 20, 'anon_retry': False, 'offline_retry': False, 'offline_retry_interval': 20, 'debug': False, 'debug_xmlrpc': False, 'serverca': '', 'use_fast_ self.retries = 1 self.rsession = self.sinfo = None Frame _callMethod in /usr/lib/python3.6/site-packages/koji/__init__.py at line 2829 2822 self.retries = 0 2823 max_retries = self.opts.get('max_retries', 30) 2824 interval = self.opts.get('retry_interval', 20) 2825 while True: 2826 tries += 1 2827 self.retries += 1 2828 try: --> 2829 return self._sendCall(handler, headers, request) 2830 # basically, we want to retry on most errors, with a few exceptions 2831 # - faults (this means the call completed and failed) 2832 # - SystemExit, KeyboardInterrupt 2833 # note that, for logged-in sessions the server should tell us (via a RetryError 2834 # fault) if the call cannot be retried. For non-logged-in sessions, all calls 2835 # should be read-only and hence retryable. args = 'dist-oc9-compose' handler = 'https://build.opencloudos.tech/kojihub' headers = [('User-Agent', 'koji/1'), ('Content-Type', 'text/xml'), ('Content-Length', '526')] interval = 20 kwargs = {'event': 463735, 'inherit': False, 'latest': True} max_retries = 30 name = 'listTaggedRPMS' request = b"\n\nlistTaggedRPMS\n\n\ndist-oc9-compose\n\n\n\n\n self._apidoc = None self._calls = [] self.authtype = None self.baseurl = 'https://build.opencloudos.tech/kojihub' self.callnum = None self.logged_in = False self.logger = self.opts = {'timeout': 43200, 'max_retries': 30, 'retry_interval': 20, 'anon_retry': False, 'offline_retry': False, 'offline_retry_interval': 20, 'debug': False, 'debug_xmlrpc': False, 'serverca': '', 'use_fast_ self.retries = 1 self.rsession = self.sinfo = None tb_str = 'Traceback (most recent call last):\n File "/usr/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen\n chunked=chunked)\n File "/usr/lib/python3.6/site-packages/urllib3/c tries = 1 Frame __call__ in /usr/lib/python3.6/site-packages/koji/__init__.py at line 2350 2343 self.__name = name 2344 self.__session = session 2345 2346 def __getattr__(self, name): 2347 return type(self)(self.__func, "%s.%s" % (self.__name, name)) 2348 2349 def __call__(self, *args, **opts): --> 2350 return self.__func(self.__name, args, opts) 2351 2352 @property 2353 def __doc__(self): 2354 if self.__session is None: 2355 # There could be potentially session-less object 2356 return None args = 'dist-oc9-compose' opts = {'event': 463735, 'inherit': False, 'latest': True} self = self._VirtualMethod__name = 'listTaggedRPMS' self._VirtualMethod__session = Frame get_latest_rpms in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py at line 497 490 try: 491 response = self.cache_region.get(cache_key) 492 except Exception: 493 pass 494 495 if not response: 496 response = self.koji_proxy.listTaggedRPMS( --> 497 tag, event=event, inherit=inherit, latest=True 498 ) 499 if self.cache_region: 500 try: 501 self.cache_region.set(cache_key, response) 502 except Exception: 503 pass cache_key = 'KojiPackageSet.get_latest_rpms_dist-oc9-compose_463735_False' event = 463735 inherit = False response = self = self._allow_invalid_sigkeys = False self._invalid_sigkey_rpms = [] self._logger = self.arches = {'athlon', 'i486', 'i386', 'src', 'i686', 'i586', 'aarch64', 'noarch', 'x86_64'} self.cache_region = self.extra_builds = [] self.extra_tasks = [] self.file_cache = self.invalid_sigkey_rpms = [] self.koji_proxy = self.koji_wrapper = self.name = 'dist-oc9-compose' self.old_file_cache = None self.packages = {'shared-mime-info', 'fuse-common', 'poppler-utils', 'iotop', 'clang-devel', 'openblas-threads64_', 'perl-Hash-Util-FieldHash', 'pulseaudio', 'fftw-openmpi-libs-long', 'tinycdb', 'junit5-javadoc', 'jd self.populate_only_packages = False self.reuse = None self.rpms_by_arch = {} self.sigkey_ordering = 'b1ee0065' self.signed_packages_retries = 1 self.signed_packages_wait = 30 self.srpms_by_name = {} tag = 'dist-oc9-compose' Frame populate in /usr/lib/python3.6/site-packages/pungi/phases/pkgset/pkgsets.py at line 583 576 577 msg = "Getting latest RPMs (tag: %s, event: %s, inherit: %s)" % ( 578 tag, 579 event, 580 inherit, 581 ) 582 self.log_info("[BEGIN] %s" % msg) --> 583 rpms, builds = self.get_latest_rpms(tag, event, inherit=inherit) 584 extra_rpms, extra_builds = self.get_extra_rpms() 585 rpms += extra_rpms 586 builds += extra_builds 587 588 extra_builds_by_name = {} 589 for build_info in extra_builds: event = 463735 include_packages = set() inherit = False msg = 'Getting latest RPMs (tag: dist-oc9-compose, event: 463735, inherit: False)' result_rpms = [] result_srpms = [] self = self._allow_invalid_sigkeys = False self._invalid_sigkey_rpms = [] self._logger = self.arches = {'athlon', 'i486', 'i386', 'src', 'i686', 'i586', 'aarch64', 'noarch', 'x86_64'} self.cache_region = self.extra_builds = [] self.extra_tasks = [] self.file_cache = self.invalid_sigkey_rpms = [] self.koji_proxy = self.koji_wrapper = self.name = 'dist-oc9-compose' self.old_file_cache = None self.packages = {'shared-mime-info', 'fuse-common', 'poppler-utils', 'iotop', 'clang-devel', 'openblas-threads64_', 'perl-Hash-Util-FieldHash', 'pulseaudio', 'fftw-openmpi-libs-long', 'tinycdb', 'junit5-javadoc', 'jd self.populate_only_packages = False self.reuse = None self.rpms_by_arch = {} self.sigkey_ordering = 'b1ee0065' self.signed_packages_retries = 1 self.signed_packages_wait = 30 self.srpms_by_name = {} 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', 'i486', 'i386', 'src', 'i686', 'i586', 'aarch64', 'noarch', 'x86_64'} allow_invalid_sigkeys = False compose = compose_tag = 'dist-oc9-compose' compose_tags = ['dist-oc9-compose'] comps = event = {'id': 463735, 'ts': 1726739556.20337} exclude_module_ns = [] extra_builds = [] extra_modules = [] extra_tasks = [] group = 'conflicts-appstream' groups = ['base', 'fonts', 'infiniband', 'mysql', 'remote-desktop-clients', 'base-x', 'file-server', 'large-systems', 'virtualization-platform', 'workstation-product', 'network-server', 'virtualization-tools', inherit = False inherit_modules = False is_traditional = True koji_wrapper = modular_koji_tags = [] modular_packages = set() old_cache_path = None packages_to_gather = ['shared-mime-info', 'fuse-common', 'poppler-utils', 'iotop', 'clang-devel', 'openblas-threads64_', 'perl-Hash-Util-FieldHash', 'pulseaudio', 'fftw-openmpi-libs-long', 'tinycdb', 'junit5-javadoc', 'jd 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': 463735, 'ts': 1726739556.20337} 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-20240919.1/logs/global/config-copy' config_dump_full = '/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-20240919.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-20240919.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 0x7fc50b44fea0> compose = compose_dir = '/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-20240919.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 0x7fc50b44fe18> 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.conf', just_phase=[], koji_event=None, label='RC-9.2', latest_link_components=-1, latest_l parser = ArgumentParser(prog='pungi-koji', usage=None, description=None, formatter_class=, conflict_handler='error', add_help=True) productmd = pungi = warning = 'WARNING: Unrecognized config option: RUNROOT_TAG.' 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 = ConnectionError(ProtocolError('Connection aborted.', BrokenPipeError(32, 'Broken pipe')),) f = <_io.BufferedWriter name='/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-20240919.1/logs/global/traceback.global.log'> kobo = tb_path = '/mnt/koji/compose/9/9.2/OpenCloudOS-9.2-20240919.1/logs/global/traceback.global.log'