← Back to issue list

Chisel integration test failing on ppc64el

View original Github issue

Metadata

Project
craft-parts
Number
#1301
Type
issue
State
open
Author
lengau
Labels
Type: Bug
Created
2025-09-15 23:01:50+00:00
Updated
2025-09-15 23:02:09+00:00
Closed

Current evaluation

No evaluation has been recorded for this issue yet.

Issue body

### Bug Description When running on `ppc64el`, `tests/integration/lifecycle/test_chisel_lifecycle.py::test_chisel_lifecycle` fails with an unspecified chisel error: ``` E craft_parts.packages.errors.ChiselError: Failed to cut requested chisel slices: ca-certificates_data ``` ### To Reproduce `pytest tests/integration/lifecycle/test_chisel_lifecycle.py::test_chisel_lifecycle` on a ppc64el machine ### part yaml ```shell ``` ### Relevant log output ```shell ____________________________ test_chisel_lifecycle _____________________________ cls = <class 'craft_parts.packages.deb.Ubuntu'> @classmethod def _unpack_stage_slices( cls, *, stage_packages: list[str], install_path: pathlib.Path ) -> None: """Cut Chisel slices into a destination path. :param stage_packages: The list of names of slices to cut. :param install_path: The destination directory. """ output_stream = StringIO() handler = logging.StreamHandler(stream=output_stream) logger.addHandler(handler) try: > process_run(["chisel", "cut", "--root", str(install_path), *stage_packages]) /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/packages/deb.py:781: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/packages/deb.py:832: in process_run os_utils.process_run(command, logger.debug, **kwargs) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ command = ['chisel', 'cut', '--root', '/home/ubuntu/craft-parts-testsjc4gcm6b/parts/foo/install', 'ca-certificates_data'] log_func = <bound method Logger.debug of <Logger craft_parts.packages.deb (WARNING)>> kwargs = {} proc = <Popen: returncode: 1 args: ['chisel', 'cut', '--root', '/home/ubuntu/craft-...> line = 'error: cannot fetch from archive: expected digest fc67ac93c642684a569235b5ff363a49ee5e7dfe59902dcddd7f1e2ab1cb6884, got 7544888e59d096f651a0d64901796b109985fce2a437abdce297b3d17662022b\n' ret = 1 def process_run( command: list[str], log_func: Callable[[str], None], **kwargs: Any ) -> None: """Run a command and handle its output.""" with subprocess.Popen( command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True, **kwargs, ) as proc: if not proc.stdout: return for line in iter(proc.stdout.readline, ""): log_func(":: " + line.strip()) ret = proc.wait() if ret: > raise subprocess.CalledProcessError(ret, command) E subprocess.CalledProcessError: Command '['chisel', 'cut', '--root', '/home/ubuntu/craft-parts-testsjc4gcm6b/parts/foo/install', 'ca-certificates_data']' returned non-zero exit status 1. /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/utils/os_utils.py:345: CalledProcessError The above exception was the direct cause of the following exception: new_homedir_path = PosixPath('/home/ubuntu/craft-parts-testsjc4gcm6b') partitions = None @pytest.mark.skipif( not _current_release_supported(), reason="Test needs Chisel support" ) def test_chisel_lifecycle(new_homedir_path, partitions): """Integrated test for Chisel support. Note that since this test needs the "chisel" binary. """ _parts_yaml = textwrap.dedent( """\ parts: foo: plugin: nil stage-packages: [ca-certificates_data] """ ) parts = yaml.safe_load(_parts_yaml) lf = craft_parts.LifecycleManager( parts, application_name="test_slice", cache_dir=new_homedir_path, work_dir=new_homedir_path, partitions=partitions, ) actions = lf.plan(Step.PRIME) with lf.action_executor() as ctx: > ctx.execute(actions) /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/tests/integration/lifecycle/test_chisel_lifecycle.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/executor/executor.py:359: in execute self._executor.execute(actions, stdout=stdout, stderr=stderr) /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/executor/executor.py:153: in execute self._run_action(act, stdout=stdout, stderr=stderr) /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/executor/executor.py:246: in _run_action handler.run_action(action, stdout=stdout, stderr=stderr) /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/executor/part_handler.py:313: in run_action state = handler(step_info, stdout=stdout, stderr=stderr) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/executor/part_handler.py:442: in _run_build self._unpack_stage_packages() /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/executor/part_handler.py:1313: in _unpack_stage_packages packages.Repository.unpack_stage_packages( /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/packages/deb.py:730: in unpack_stage_packages cls._unpack_stage_slices( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cls = <class 'craft_parts.packages.deb.Ubuntu'> @classmethod def _unpack_stage_slices( cls, *, stage_packages: list[str], install_path: pathlib.Path ) -> None: """Cut Chisel slices into a destination path. :param stage_packages: The list of names of slices to cut. :param install_path: The destination directory. """ output_stream = StringIO() handler = logging.StreamHandler(stream=output_stream) logger.addHandler(handler) try: process_run(["chisel", "cut", "--root", str(install_path), *stage_packages]) except subprocess.CalledProcessError as err: command_output = output_stream.getvalue() > raise errors.ChiselError( slices=stage_packages, output=command_output ) from err E craft_parts.packages.errors.ChiselError: Failed to cut requested chisel slices: ca-certificates_data /home/ubuntu/actions-runner/_work/craft-parts/craft-parts/craft_parts/packages/deb.py:784: ChiselError ```

Evaluation history

No evaluation history available.