...
On a RHEL9 VM where I have osbuild/ImageBuilder installed, I ran into a situation where my compose failed, but there were no logs available. ``` $ sudo composer-cli compose list c4258562-b24b-49d7-8ed3-84e3e50db0b8 FAILED edge 0.0.4 edge-container $ sudo composer-cli compose log c4258562-b24b-49d7-8ed3-84e3e50db0b8 The compose result is empty. ``` As an end user, this is very unhelpful. Without prior knowledge of osbuild, I would not know what to do next except for calling RHT support. I was able to determine there was an error retrieving an RPM from a custom repo that I provided. ``` $ sudo journalctl -b .... Aug 05 11:58:56 edgebuilder osbuild-worker[1061]: time="2022-08-05T11:58:56-04:00" level=info msg="Running job '15950085-5e50-4f89-aa09-afd08f4ef3d9' (osbuild)\n" Aug 05 11:58:56 edgebuilder osbuild-composer[1060]: 2022/08/05 11:58:56 GET /api/v0/compose/types Aug 05 11:58:56 edgebuilder osbuild-composer[1060]: 2022/08/05 11:58:56 GET /api/v1/compose/status/c4258562-b24b-49d7-8ed3-84e3e50db0b8 Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: Traceback (most recent call last): Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/bin/osbuild", line 33, in <module> Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: sys.exit(load_entry_point('osbuild==53', 'console_scripts', 'osbuild')()) Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/python3.9/site-packages/osbuild/main_cli.py", line 158, in osbuild_cli Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: manifest.download(object_store, monitor, args.libdir) Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/python3.9/site-packages/osbuild/pipeline.py", line 371, in download Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: source.download(mgr, store, libdir) Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/python3.9/site-packages/osbuild/sources.py", line 38, in download Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: reply = client.call_with_fds("download", args, fds) Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/python3.9/site-packages/osbuild/host.py", line 375, in call_with_fds Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: raise error Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: osbuild.host.RemoteError: RuntimeError: curl: error downloading {'url': 'http://brew-task-repos.usersys.redhat.com/repos/official/subscription-manager/1.29.26.1/1.el9_0/$basearch/subscription-manager-1.29.26.1-1.el9_0.x86_64.rpm'} : error code 22 Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/python3.9/site-packages/osbuild/host.py", line 268, in serve Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: reply, reply_fds = self._handle_message(msg, fds) Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/python3.9/site-packages/osbuild/host.py", line 301, in _handle_message Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: ret, fds = self.dispatch(name, args, fds) Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/python3.9/site-packages/osbuild/sources.py", line 62, in dispatch Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: r = self.download(items, Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/osbuild/sources/org.osbuild.curl", line 172, in download Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: download(items, cache) Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib/osbuild/sources/org.osbuild.curl", line 162, in download Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: for _ in results: Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib64/python3.9/concurrent/futures/process.py", line 559, in _chain_from_iterable_of_lists Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: for element in iterable: Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib64/python3.9/concurrent/futures/_base.py", line 609, in result_iterator Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: yield fs.pop().result() Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib64/python3.9/concurrent/futures/_base.py", line 446, in result Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: return self.__get_result() Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: File "/usr/lib64/python3.9/concurrent/futures/_base.py", line 391, in __get_result Aug 05 11:59:00 edgebuilder osbuild-worker[55232]: raise self._exception Aug 05 11:59:00 edgebuilder osbuild-worker[1061]: time="2022-08-05T11:59:00-04:00" level=error msg="osbuild job failed: osbuild build failed" jobId=15950085-5e50-4f89-aa09-afd08f4ef3d9 Aug 05 11:59:00 edgebuilder osbuild-worker[1061]: time="2022-08-05T11:59:00-04:00" level=warning msg="Job '15950085-5e50-4f89-aa09-afd08f4ef3d9' (osbuild) failed: error decoding osbuild output: unexpected end of JSON input\nthe raw output:\n" Aug 05 11:59:57 edgebuilder osbuild-composer[1060]: 2022/08/05 11:59:57 GET /api/v1/compose/status/c4258562-b24b-49d7-8ed3-84e3e50db0b8 ``` In the custom source that I created, the URL had `$baseurl` in the path (which is typical in a yum repo definition), but this caused issues during the RPM download. I'll file another BZ about that, which seems like it should be caught as part of input validation or supported.
Won't Do