← Back to issue list

`charmcraft` installs newer version in LXC container & doesn't respect pinned snap revision

View original Github issue

Metadata

Project
charmcraft
Number
#1202
Type
issue
State
closed
Author
carlcsaposs-canonical
Labels
Created
Updated
Closed

Current evaluation

Closed. A fix is planned to switch craft-providers to the newer snap refresh --hold=forever syntax, preventing automatic container updates. A regression test will be added.

Suggested action:

No scores available.

Issue body

### Bug Description Because of #1179, our team is currently using charmcraft 2.3.0 by installing the snap with `--revision=1349` However, inside the LXC container charmcraft is installed as 2.3.1 and we're running into the same issue as #1179 ## Expected behavior charmcraft has the same version in the LXC container as charmcraft on the host machine ### To Reproduce Unable to reproduce so far Examples: https://github.com/canonical/mysql-operator/actions/runs/5745497262/job/15573643405 https://github.com/canonical/mysql-operator/actions/runs/5751410879/job/15590220679 ### Environment Ubuntu 22.04 LTS ### charmcraft.yaml ```shell # Copyright 2022 Canonical Ltd. # See LICENSE file for licensing details. type: charm bases: # Whenever "bases" is changed: # - Update tests/integration/conftest.py::pytest_configure() # - Update .github/workflow/ci.yaml integration-test matrix - build-on: - name: "ubuntu" channel: "22.04" run-on: - name: "ubuntu" channel: "22.04" parts: charm: override-pull: | craftctl default if [[ ! -f requirements.txt ]] then echo 'ERROR: Use "tox run -e build" instead of calling "charmcraft pack" directly' >&2 exit 1 fi build-packages: - libffi-dev - libssl-dev - pkg-config - rustc - cargo ``` ### Relevant log output ```shell 2023-08-03 13:36:43.270 Starting charmcraft version 2.3.0 2023-08-03 13:36:43.275 System details: OSPlatform(system='ubuntu', release='22.04', machine='x86_64'); Environment: None 2023-08-03 13:36:43.275 Packing the charm. 2023-08-03 13:36:43.276 Reading '/home/runner/work/mysql-operator/mysql-operator/metadata.yaml' 2023-08-03 13:36:43.282 Validating metadata format 2023-08-03 13:36:43.507 Executing on host: lxc --project default profile show local:default 2023-08-03 13:36:43.569 Building for 'bases[0]' as host matches 'build-on[0]'. 2023-08-03 13:36:43.569 Building for 'bases[0][0]'. 2023-08-03 13:36:43.569 Launching environment to pack for base name='ubuntu' channel='22.04' architectures=['amd64'] (may take a while the first time but it's reusable) 2023-08-03 13:36:43.570 Using hostname 'charmcraft-mysql-344327-0-0-amd64' 2023-08-03 13:36:43.570 Executing on host: lxc remote list --format=yaml 2023-08-03 13:36:43.633 Executing on host: lxc remote add craft-com.ubuntu.cloud-buildd https://cloud-images.ubuntu.com/buildd/releases --protocol=simplestreams 2023-08-03 13:36:43.693 Remote 'craft-com.ubuntu.cloud-buildd' was successfully added. 2023-08-03 13:36:43.693 Executing on host: lxc project list local: --format=yaml 2023-08-03 13:36:43.758 Set LXD instance name to 'charmcraft-mysql-344327-0-0-amd64' 2023-08-03 13:36:43.758 Checking for instance 'charmcraft-mysql-344327-0-0-amd64' in project 'charmcraft' in remote 'local' 2023-08-03 13:36:43.758 Executing on host: lxc --project charmcraft list local: --format=yaml 2023-08-03 13:36:43.846 Executing on host: lxc --project charmcraft config get local:charmcraft-mysql-344327-0-0-amd64 raw.idmap 2023-08-03 13:36:43.908 Executing on host: lxc --project charmcraft list local: --format=yaml 2023-08-03 13:36:43.997 Instance exists and is not running. Starting instance. 2023-08-03 13:36:43.998 Executing on host: lxc --project charmcraft start local:charmcraft-mysql-344327-0-0-amd64 2023-08-03 13:36:44.570 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 test -f /etc/craft-instance.conf 2023-08-03 13:36:44.715 Executing on host: lxc --project charmcraft file pull local:charmcraft-mysql-344327-0-0-amd64/etc/craft-instance.conf /home/runner/tmpiw1l9ivn.tmp-craft/tmp6hu1pikw 2023-08-03 13:36:44.844 Instance has already been setup. 2023-08-03 13:36:44.844 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 cat /etc/os-release 2023-08-03 13:36:44.979 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 test -f /etc/craft-instance.conf 2023-08-03 13:36:45.109 Executing on host: lxc --project charmcraft file pull local:charmcraft-mysql-344327-0-0-amd64/etc/craft-instance.conf /home/runner/tmp0vsjqep3.tmp-craft/tmpw5fwr1ro 2023-08-03 13:36:45.206 Instance is compatible with compatibility tag 'charmcraft-buildd-base-v1.0' 2023-08-03 13:36:45.207 Waiting for environment to be ready... 2023-08-03 13:36:45.207 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:45.331 systemctl is-system-running status: starting 2023-08-03 13:36:45.582 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:45.730 systemctl is-system-running status: starting 2023-08-03 13:36:45.981 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:46.131 systemctl is-system-running status: starting 2023-08-03 13:36:46.382 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:46.519 systemctl is-system-running status: starting 2023-08-03 13:36:46.770 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:46.877 systemctl is-system-running status: starting 2023-08-03 13:36:47.128 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:47.257 systemctl is-system-running status: starting 2023-08-03 13:36:47.508 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:47.604 systemctl is-system-running status: starting 2023-08-03 13:36:47.855 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:47.969 systemctl is-system-running status: starting 2023-08-03 13:36:48.220 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:48.327 systemctl is-system-running status: starting 2023-08-03 13:36:48.578 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl is-system-running 2023-08-03 13:36:48.675 Waiting for networking to be ready... 2023-08-03 13:36:48.675 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 getent hosts snapcraft.io 2023-08-03 13:36:48.822 Holding refreshes for snaps. 2023-08-03 13:36:48.822 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 snap set system refresh.hold=2023-08-04T13:36:48.822068Z 2023-08-03 13:36:49.970 Waiting for pending snap refreshes to complete. 2023-08-03 13:36:49.970 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 snap watch '--last=auto-refresh?' 2023-08-03 13:36:56.355 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 snap unset system proxy.http 2023-08-03 13:36:56.508 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 snap unset system proxy.https 2023-08-03 13:36:56.740 Installing snap 'charmcraft' with channel=None and classic=True 2023-08-03 13:36:56.740 Installing snap 'charmcraft' from host (classic=True) 2023-08-03 13:36:56.749 Executing in container: lxc --project charmcraft exec local:charmcraft-mysql-344327-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 test -f /etc/craft-instance.conf 2023-08-03 13:36:56.840 Executing on host: lxc --project charmcraft file pull local:charmcraft-mysql-344327-0-0-amd64/etc/craft-instance.conf /home/runner/tmpmvtcomhd.tmp-craft/tmpwclzfdqo 2023-08-03 13:36:56.912 Revisions found: host='1349', target='1349' 2023-08-03 13:36:56.912 Skipping snap injection: target is already up-to-date with revision on host 2023-08-03 13:36:56.912 Mounting directory inside the instance 2023-08-03 13:36:56.912 Executing on host: lxc --project charmcraft config device show local:charmcraft-mysql-344327-0-0-amd64 2023-08-03 13:36:56.979 Executing on host: lxc --project charmcraft config device add local:charmcraft-mysql-344327-0-0-amd64 disk-/root/project disk source=/home/runner/work/mysql-operator/mysql-operator path=/root/project 2023-08-03 13:36:57.074 Packing the charm 2023-08-03 13:36:57.074 Running ['charmcraft', 'pack', '--bases-index', '0', '--verbosity=brief'] 2023-08-03 13:36:57.074 Emitter: Pausing control of the terminal 2023-08-03 13:37:09.792 Emitter: Resuming control of the terminal 2023-08-03 13:37:09.969 Logs captured from managed instance: 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.511 Starting charmcraft version 2.3.1 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.517 System details: OSPlatform(system='ubuntu', release='22.04', machine='x86_64'); Environment: CHARMCRAFT_MANAGED_MODE='1' 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.517 Packing the charm. 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.517 Reading '/root/project/metadata.yaml' 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.523 Validating metadata format 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.532 Building for 'bases[0]' as host matches 'build-on[0]'. 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.532 Building for 'bases[0][0]'. 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.532 Building charm in '/root' 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.657 Parts definition: {'charm': {'source': '/root/project', 'charm-entrypoint': 'src/charm.py', 'charm-binary-python-packages': [], 'charm-python-packages': [], 'charm-requirements': ['requirements.txt'], 'override-pull': 'craftctl default\nif [[ ! -f requirements.txt ]]\nthen\n echo \'ERROR: Use "tox run -e build" instead of calling "charmcraft pack" directly\' >&2\n exit 1\nfi\n', 'build-packages': ['libffi-dev', 'libssl-dev', 'pkg-config', 'rustc', 'cargo'], 'plugin': 'charm', 'prime': ['src', 'venv', 'metadata.yaml', 'dispatch', 'hooks', 'config.yaml', 'actions.yaml', 'lib', 'LICENSE', 'icon.svg', 'README.md']}} 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.657 is_snap: True, SNAP_NAME set to charmcraft 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.658 Setting target machine to x86_64 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.658 load state file: /root/parts/charm/state/pull 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.666 load state file: /root/parts/charm/state/build 2023-08-03 13:37:09.969 :: 2023-08-03 13:36:59.688 load state file: /root/parts/charm/state/stage 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.353 load state file: /root/parts/charm/state/prime 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.970 Executing parts lifecycle in '/root/project' 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.971 process charm:Step.PULL 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.971 check if Part('charm'):Step.PULL is dirty 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.971 check if Part('charm'):Step.PULL is outdated 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.971 ignore patterns: ['*.charm'] 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.972 updated files: {'icon.svg', 'CONTRIBUTING.md', 'actions.yaml', 'metadata.yaml', 'charmcraft.yaml', 'requirements-last-build.txt', 'config.yaml', 'poetry.lock', 'LICENSE', 'requirements.txt', 'tox.ini', '.gitignore', '.jujuignore', 'README.md', 'pyproject.toml'} 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.972 updated directories: {'.github', 'docs', '.tox', '.git', 'src', 'lib', 'tests'} 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.972 charm:Step.PULL is outdated 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.972 update step charm:Step.PULL 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.972 add action charm:Step.PULL(ActionType.UPDATE) 2023-08-03 13:37:09.969 :: 2023-08-03 13:37:00.972 process charm:Step.BUILD 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.972 check if Part('charm'):Step.BUILD is dirty 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.987 check if Part('charm'):Step.BUILD is outdated 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.987 charm:Step.BUILD is outdated 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.987 update step charm:Step.BUILD 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.987 add action charm:Step.BUILD(ActionType.UPDATE) 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.987 process charm:Step.STAGE 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.987 check if Part('charm'):Step.STAGE is dirty 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.988 check if Part('charm'):Step.STAGE is outdated 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.988 charm:Step.STAGE is outdated 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.988 rerun step charm:Step.STAGE 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.988 add action charm:Step.STAGE(ActionType.RERUN) 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.989 process charm:Step.PRIME 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.989 add action charm:Step.PRIME(ActionType.RUN) 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.989 Parts actions: [Action(part_name='charm', step=Step.PULL, action_type=ActionType.UPDATE, reason='source changed', project_vars=None, properties=ActionProperties(changed_files=['.gitignore', '.jujuignore', 'CONTRIBUTING.md', 'LICENSE', 'README.md', 'actions.yaml', 'charmcraft.yaml', 'config.yaml', 'icon.svg', 'metadata.yaml', 'poetry.lock', 'pyproject.toml', 'requirements-last-build.txt', 'requirements.txt', 'tox.ini'], changed_dirs=['.git', '.github', '.tox', 'docs', 'lib', 'src', 'tests'])), Action(part_name='charm', step=Step.BUILD, action_type=ActionType.UPDATE, reason="'PULL' step changed", project_vars=None, properties=ActionProperties(changed_files=['.gitignore', '.jujuignore', 'CONTRIBUTING.md', 'LICENSE', 'README.md', 'actions.yaml', 'charmcraft.yaml', 'config.yaml', 'icon.svg', 'metadata.yaml', 'poetry.lock', 'pyproject.toml', 'requirements-last-build.txt', 'requirements.txt', 'tox.ini'], changed_dirs=['.git', '.github', '.tox', 'docs', 'lib', 'src', 'tests'])), Action(part_name='charm', step=Step.STAGE, action_type=ActionType.RERUN, reason="'BUILD' step changed", project_vars=None, properties=ActionProperties(changed_files=None, changed_dirs=None)), Action(part_name='charm', step=Step.PRIME, action_type=ActionType.RUN, reason=None, project_vars=None, properties=ActionProperties(changed_files=None, changed_dirs=None))] 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.989 ignore patterns: ['*.charm'] 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.989 part build packages: ['libffi-dev', 'libssl-dev', 'pkg-config', 'rustc', 'cargo'] 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.990 plugin build packages: {'python3-pip', 'python3-dev', 'python3-wheel', 'python3-setuptools', 'python3-venv'} 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:00.990 Requested build-packages: ['cargo', 'libffi-dev', 'libssl-dev', 'pkg-config', 'python3-dev', 'python3-pip', 'python3-setuptools', 'python3-venv', 'python3-wheel', 'rustc'] 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.558 Marking libssl-dev (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.558 package: libssl-dev 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.567 Marking python3-pip (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.567 package: python3-pip 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.573 Marking pkg-config (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.573 package: pkg-config 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.578 Marking python3-dev (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.579 package: python3-dev 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.584 Marking python3-wheel (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.584 package: python3-wheel 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.589 Marking rustc (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.589 package: rustc 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.595 Marking python3-setuptools (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.595 package: python3-setuptools 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.600 Marking python3-venv (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.600 package: python3-venv 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.606 Marking cargo (and its dependencies) to be fetched 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.606 package: cargo 2023-08-03 13:37:09.970 :: 2023-08-03 13:37:01.611 Marking libffi-dev (and its dependencies) to be fetched 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:01.611 package: libffi-dev 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:01.639 Requested build-packages already installed: ['cargo', 'libffi-dev', 'libssl-dev', 'pkg-config', 'python3-dev', 'python3-pip', 'python3-setuptools', 'python3-venv', 'python3-wheel', 'rustc'] 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:01.915 verify plugin environment for part 'charm' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:01.916 Running step PULL for part 'charm' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:01.916 Execute action 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:01.917 execute action charm:Action(part_name='charm', step=Step.PULL, action_type=ActionType.UPDATE, reason='source changed', project_vars=None, properties=ActionProperties(changed_files=['.gitignore', '.jujuignore', 'CONTRIBUTING.md', 'LICENSE', 'README.md', 'actions.yaml', 'charmcraft.yaml', 'config.yaml', 'icon.svg', 'metadata.yaml', 'poetry.lock', 'pyproject.toml', 'requirements-last-build.txt', 'requirements.txt', 'tox.ini'], changed_dirs=['.git', '.github', '.tox', 'docs', 'lib', 'src', 'tests'])) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:01.923 :: + craftctl default 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.577 :: + [[ ! -f requirements.txt ]] 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.695 load state file: /root/parts/charm/state/pull 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.710 Running step BUILD for part 'charm' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.710 Execute action 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.711 execute action charm:Action(part_name='charm', step=Step.BUILD, action_type=ActionType.UPDATE, reason="'PULL' step changed", project_vars=None, properties=ActionProperties(changed_files=['.gitignore', '.jujuignore', 'CONTRIBUTING.md', 'LICENSE', 'README.md', 'actions.yaml', 'charmcraft.yaml', 'config.yaml', 'icon.svg', 'metadata.yaml', 'poetry.lock', 'pyproject.toml', 'requirements-last-build.txt', 'requirements.txt', 'tox.ini'], changed_dirs=['.git', '.github', '.tox', 'docs', 'lib', 'src', 'tests'])) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.711 ignore patterns: [] 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.712 updated files: {'icon.svg', 'CONTRIBUTING.md', 'actions.yaml', 'metadata.yaml', 'charmcraft.yaml', 'requirements-last-build.txt', 'config.yaml', 'poetry.lock', 'LICENSE', 'requirements.txt', 'tox.ini', '.gitignore', '.jujuignore', 'README.md', 'pyproject.toml'} 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:03.712 updated directories: {'.github', 'docs', '.tox', '.git', 'src', 'lib', 'tests'} 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:04.182 remove directory /root/parts/charm/install 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:04.262 load state file: /root/parts/charm/state/pull 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:04.272 Executing PosixPath('/root/parts/charm/run/build.sh') 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:04.277 :: + env -i LANG=C.UTF-8 LC_ALL=C.UTF-8 PATH=/snap/charmcraft/1429/libexec/charmcraft:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin SNAP=/snap/charmcraft/1429 SNAP_ARCH=amd64 SNAP_NAME=charmcraft SNAP_VERSION=2.3.1 /snap/charmcraft/1429/bin/python3 -u -I /snap/charmcraft/1429/lib/charmcraft/charm_builder.py --builddir /root/parts/charm/build --installdir /root/parts/charm/install --entrypoint /root/parts/charm/build/src/charm.py -r requirements.txt 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.257 :: Starting charm builder 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.257 :: Translated .jujuignore 2 '.git' => '.*/\\.git\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.257 :: Translated .jujuignore 3 '.svn' => '.*/\\.svn\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.257 :: Translated .jujuignore 4 '.hg' => '.*/\\.hg\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.257 :: Translated .jujuignore 5 '.bzr' => '.*/\\.bzr\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 6 '.tox' => '.*/\\.tox\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 8 '/build/' => '/build\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 9 '/revision' => '/revision\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 10 '/venv' => '/venv\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 12 '.jujuignore' => '.*/\\.jujuignore\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 1 '/venv\n' => '/venv\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 2 '*.py[cod]\n' => '.*/[^/]*\\.py[cod]\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 3 '*.charm\n' => '.*/[^/]*\\.charm\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 4 '.tox/\n' => '.*/\\.tox\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.258 :: Translated .jujuignore 1 '/staging-venv' => '/staging\\-venv\\Z' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.367 :: Collected charmlib dependencies: {'cosl', 'pydantic<2', 'ops>=2.0.0'} 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.367 :: Building charm in '/root/parts/charm/install' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.367 :: Linking in generic paths 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.368 :: Ignoring directory because of rules: '.git' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.368 :: Ignoring directory because of rules: 'staging-venv' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.368 :: Ignoring directory because of rules: '.tox' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.368 :: Ignoring file because of rules: '.jujuignore' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Creating the dispatch mechanism 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Creating the 'upgrade-charm' hook script pointing to dispatch 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Creating the 'install' hook script pointing to dispatch 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Creating the 'start' hook script pointing to dispatch 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Handling dependencies 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Current dependencies hash: 'bbf27888b17954e8b8a2d50d2a33e1e7a6b027d6' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Previous dependencies hash: 'a7906a96ab8f9d22f321dfba91795f2be8a85ebb' 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Installing dependencies 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:05.375 :: Running external command ['python3', '-m', 'venv', '/root/parts/charm/build/staging-venv'] 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:07.241 :: Running external command ['/root/parts/charm/build/staging-venv/bin/pip3', '--version'] 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:07.561 :: :: pip 22.0.2 from /root/parts/charm/build/staging-venv/lib/python3.10/site-packages/pip (python 3.10) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:07.604 :: Running external command ['/root/parts/charm/build/staging-venv/bin/pip3', 'install', '--upgrade', '--no-binary', ':all:', '--requirement=requirements.txt', 'cosl', 'pydantic<2', 'ops>=2.0.0'] 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:08.083 :: :: Requirement already satisfied: cosl in ./staging-venv/lib/python3.10/site-packages (0.0.5) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:08.225 :: :: Requirement already satisfied: pydantic<2 in ./staging-venv/lib/python3.10/site-packages (1.10.12) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:08.344 :: :: Requirement already satisfied: ops>=2.0.0 in ./staging-venv/lib/python3.10/site-packages (2.5.0) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:08.367 :: :: Requirement already satisfied: attrs==23.1.0 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 1)) (23.1.0) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:08.387 :: :: Requirement already satisfied: boto3==1.28.15 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 4)) (1.28.15) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:08.739 :: :: Requirement already satisfied: botocore==1.31.15 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 7)) (1.31.15) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.134 :: :: Requirement already satisfied: cffi==1.15.1 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 10)) (1.15.1) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.269 :: :: Requirement already satisfied: cryptography==41.0.2 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 78)) (41.0.2) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.435 :: :: Requirement already satisfied: jmespath==1.0.1 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 102)) (1.0.1) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.453 :: :: Requirement already satisfied: jsonschema-specifications==2023.7.1 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 105)) (2023.7.1) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.471 :: :: Requirement already satisfied: jsonschema==4.18.4 in ./staging-venv/lib/python3.10/site-packages (from -r requirements.txt (line 108)) (4.18.4) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.509 :: :: Collecting ops>=2.0.0 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.509 :: :: ERROR: In --require-hashes mode, all requirements must have their versions pinned with ==. These do not: 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.509 :: :: ops>=2.0.0 from https://files.pythonhosted.org/packages/9e/44/26e661d17a483af287dcac85da4a8614fa10921474607b7af6c4ea04183e/ops-2.4.1.tar.gz#sha256=b5762bea03049ec150c6266833925d0bb36237b26b006ca878e74e24d162f981 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.640 :: Traceback (most recent call last): 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.640 :: File "/snap/charmcraft/1429/lib/charmcraft/charm_builder.py", line 432, in <module> 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: main() 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: File "/snap/charmcraft/1429/lib/charmcraft/charm_builder.py", line 427, in main 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: builder.build_charm() 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: File "/snap/charmcraft/1429/lib/charmcraft/charm_builder.py", line 102, in build_charm 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: self.handle_dependencies() 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: File "/snap/charmcraft/1429/lib/charmcraft/charm_builder.py", line 314, in handle_dependencies 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: self._install_dependencies(staging_venv_dir) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.641 :: File "/snap/charmcraft/1429/lib/charmcraft/instrum.py", line 152, in _f 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.642 :: return func(*args, **kwargs) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.642 :: File "/snap/charmcraft/1429/lib/charmcraft/charm_builder.py", line 274, in _install_dependencies 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.642 :: _process_run(cmd) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.642 :: File "/snap/charmcraft/1429/lib/charmcraft/charm_builder.py", line 368, in _process_run 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.642 :: raise RuntimeError(f"Subprocess command {cmd} execution failed with retcode {retcode}") 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.642 :: RuntimeError: Subprocess command ['/root/parts/charm/build/staging-venv/bin/pip3', 'install', '--upgrade', '--no-binary', ':all:', '--requirement=requirements.txt', 'cosl', 'pydantic<2', 'ops>=2.0.0'] execution failed with retcode 1 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.710 Parts processing error: Failed to run the build script for part 'charm'. 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 Traceback (most recent call last): 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/step_handler.py", line 146, in _builtin_build 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 _create_and_run_script( 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/step_handler.py", line 409, in _create_and_run_script 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 subprocess.run( 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/usr/lib/python3.8/subprocess.py", line 516, in run 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 raise CalledProcessError(retcode, process.args, 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 subprocess.CalledProcessError: Command '[PosixPath('/root/parts/charm/run/build.sh')]' returned non-zero exit status 1. 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 The above exception was the direct cause of the following exception: 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 Traceback (most recent call last): 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/charmcraft/parts.py", line 468, in run 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 aex.execute([act], stdout=stream, stderr=stream) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/executor.py", line 304, in execute 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 self._executor.execute(actions, stdout=stdout, stderr=stderr) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/executor.py", line 128, in execute 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 self._run_action(act, stdout=stdout, stderr=stderr) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/executor.py", line 193, in _run_action 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 handler.run_action(action, stdout=stdout, stderr=stderr) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/part_handler.py", line 137, in run_action 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 self._update_action( 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/part_handler.py", line 546, in _update_action 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 handler(step_info, stdout=stdout, stderr=stderr) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/part_handler.py", line 642, in _update_build 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 self._run_build(step_info, stdout=stdout, stderr=stderr, update=True) 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/part_handler.py", line 309, in _run_build 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 self._run_step( 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/part_handler.py", line 493, in _run_step 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 return step_handler.run_builtin() 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/step_handler.py", line 106, in run_builtin 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 return handler() 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 File "/snap/charmcraft/1429/lib/craft_parts/executor/step_handler.py", line 155, in _builtin_build 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 raise errors.PluginBuildError(part_name=self._part.name) from process_error 2023-08-03 13:37:09.977 :: 2023-08-03 13:37:09.715 craft_parts.errors.PluginBuildError: Failed to run the build script for part 'charm'. 2023-08-03 13:37:11.233 Failed to build charm for bases index '0'. 2023-08-03 13:37:11.237 Traceback (most recent call last): 2023-08-03 13:37:11.237 File "/snap/charmcraft/1349/lib/charmcraft/commands/build.py", line 388, in pack_charm_in_instance 2023-08-03 13:37:11.237 instance.execute_run(cmd, check=True, cwd=instance_output_dir) 2023-08-03 13:37:11.237 File "/snap/charmcraft/1349/lib/craft_providers/lxd/lxd_instance.py", line 289, in execute_run 2023-08-03 13:37:11.237 return self.lxc.exec( 2023-08-03 13:37:11.237 File "/snap/charmcraft/1349/lib/craft_providers/lxd/lxc.py", line 371, in exec 2023-08-03 13:37:11.237 return runner(final_cmd, **kwargs) # pylint: disable=subprocess-run-check 2023-08-03 13:37:11.237 File "/snap/charmcraft/1349/usr/lib/python3.8/subprocess.py", line 516, in run 2023-08-03 13:37:11.237 raise CalledProcessError(retcode, process.args, 2023-08-03 13:37:11.237 subprocess.CalledProcessError: Command '['lxc', '--project', 'charmcraft', 'exec', 'local:charmcraft-mysql-344327-0-0-amd64', '--cwd', '/root/project', '--', 'env', 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 'CHARMCRAFT_MANAGED_MODE=1', 'charmcraft', 'pack', '--bases-index', '0', '--verbosity=brief']' returned non-zero exit status 1. 2023-08-03 13:37:11.237 Full execution log: '/home/runner/.local/state/charmcraft/log/charmcraft-20230803-133643.269717.log' ```

Evaluation history

Date Model Scores Action Summary
qwen3.6-35b-a3b-mtp-q6 Closed. A fix is planned to switch craft-providers to the newer snap refresh --hold=forever syntax, preventing automatic container updates. A regression test will be added.
qwen/qwen3.6-35b-a3b Resolved by switching to the newer snap refresh hold syntax and adding a regression test. The craft-providers root cause was identified, and the fix ensures pinned snap revisions are respected in managed LXC environments.
qwen/qwen3.6-35b-a3b Closed. Maintainers determined craft-providers fails to hold snap refreshes, causing container version mismatches. Resolution involves switching to the newer snap hold syntax and adding a regression test to prevent recurrence.
qwen3.6-35b-a3b-mtp-q6 Closed as part of an enhancement to fix snap refresh holds in craft-providers. The team will switch to the snap refresh --hold=forever syntax and add a regression test to fix the LXC version mismatch.
qwen3.6-35b-a3b-mtp-q6 Closed. Fixed by updating craft-providers to use the new snap refresh hold syntax and adding a regression test to enforce pinned revisions.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#1987 Charmcraft snap fails to install due to a timeout on the configure hook charmcraft closed Fixed in PR #1984 and released. The charmcraft snap configure hook timeout was resolved. Flaky failures occurred when LXD was absent, triggering a transient store download. The issue is closed.
71%
#1770 charmcraft snap doesn't work with snap parallel installs charmcraft closed Charmcraft fails with parallel snap installs due to hardcoded snap names ignoring instance keys. Root cause identified in craft-providers, tracked as CRAFT-3351. Closed as blocked by craft-providers#622 pending upstream fix.
71%
#560 Charmcraft pack is giving error frequently charmcraft closed Charmcraft pack failed due to an apt-get network error installing snapd in an LXD container. Maintainers linked it to a known networking issue. The reporter confirmed a workaround failed. Closed without a code fix, likely abandoned.
71%
#646 Failed to inject host Charmcraft snap into target environment charmcraft closed Closed. Maintainer confirmed the issue is resolved in recent Charmcraft versions and cannot be reproduced. A user workaround suggested running charmcraft clean --verbose prior to building.
70%