canonical / charmcraft

Collaborate, build and publish charmed operators for Kubernetes, Linux and Windows.
Apache License 2.0
65 stars 69 forks source link

charmcraft pack errors with LXDError - Name can only contain alphanumeric and hyphen characters #685

Closed jamesbeedy closed 2 years ago

jamesbeedy commented 2 years ago

Getting this LXD error on every attempt to pack the charm.

Let me know if you need any other info.

Thanks


15:44 $ charmcraft pack
charmcraft internal error: LXDError(brief="Failed to add disk to instance 'charmcraft-slurmd-216838-0-0-amd64'.", details='* Command that failed: \'lxc --project charmcraft config device add local:charmcraft-slurmd-216838-0-0-amd64 disk-/root/project disk source=/home/bdx/allcode/github/omnivector/slurm-charms/charm-slurmd path=/root/project\'\n* Command exit code: 1\n* Command standard error output: b\'Error: Invalid devices: Device validation failed for "disk-/root/project": Name can only contain alphanumeric and hyphen characters\\n\'', resolution=None)
Full execution log: '/home/bdx/snap/charmcraft/common/cache/charmcraft/log/charmcraft-20220223-154449.556573.log'
✘-1 ~/allcode/github/omnivector/slurm-charms [gpu|✔]
15:45 $ charmcraft version
1.4.0
✔ ~/allcode/github/omnivector/slurm-charms [gpu|✔]
15:45 $ lxc --version
4.23
✔ ~/allcode/github/omnivector/slurm-charms [gpu|✔]
15:45 $ lxd --version
4.23
jamesbeedy commented 2 years ago

Here is the log

15:48 $ cat /home/bdx/snap/charmcraft/common/cache/charmcraft/log/charmcraft-20220223-154449.556573.log
2022-02-23 15:44:49.557 Starting charmcraft version 1.4.0
2022-02-23 15:44:49.557 Raw pre-parsed sysargs: args={'help': False, 'verbose': False, 'quiet': False, 'trace': False, 'project_dir': 'charm-slurmd'} filtered=['pack']
2022-02-23 15:44:49.557 General parsed sysargs: command='pack' args=[]
2022-02-23 15:44:49.560 Command parsed sysargs: Namespace(bases_index=None, debug=False, destructive_mode=False, entrypoint=None, force=False, requirement=None, shell=False, shell_after=False)
2022-02-23 15:44:49.560 Packing the charm.
2022-02-23 15:44:49.560 Working arguments: {'from': PosixPath('/home/bdx/allcode/github/omnivector/slurm-charms/charm-slurmd'), 'destructive_mode': False, 'entrypoint': None, 'requirement': [], 'bases_indices': None, 'force': False, 'debug': False, 'shell': False, 'shell_after': False}
2022-02-23 15:44:49.560 Parsing '/home/bdx/allcode/github/omnivector/slurm-charms/charm-slurmd/metadata.yaml'
2022-02-23 15:44:49.623 Executing on host: lxc --project default profile show local:default
2022-02-23 15:44:49.667 Building for 'bases[0]' as host matches 'build-on[0]'.
2022-02-23 15:44:49.667 Building for 'bases[0][0]'.
2022-02-23 15:44:49.667 Launching environment to pack for base name='ubuntu' channel='20.04' architectures=['amd64']
2022-02-23 15:44:49.668 Executing on host: lxc remote list --format=yaml
2022-02-23 15:44:49.708 Remote 'craft-com.ubuntu.cloud-buildd' already exists.
2022-02-23 15:44:49.708 Executing on host: lxc project list local: --format=yaml
2022-02-23 15:44:49.754 Executing on host: lxc --project charmcraft list local: --format=yaml
2022-02-23 15:44:49.797 Executing on host: lxc --project charmcraft image list local: --format=yaml
2022-02-23 15:44:49.843 Using compatible snapshot 'snapshot-craft-com.ubuntu.cloud-buildd-20.04-charmcraft-buildd-base-v0.0'.
2022-02-23 15:44:49.843 Executing on host: lxc --project charmcraft info local:
2022-02-23 15:44:49.908 Executing on host: lxc --project charmcraft launch local:snapshot-craft-com.ubuntu.cloud-buildd-20.04-charmcraft-buildd-base-v0.0 local:charmcraft-slurmd-216838-0-0-amd64 --config 'raw.idmap=both 1000 0' --config security.syscalls.intercept.mknod=true
2022-02-23 15:44:52.088 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:52.167 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:52.299 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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/craft-instance.conf
2022-02-23 15:44:52.414 Executing on host: lxc --project charmcraft file push /home/bdx/snap/charmcraft/common/tmpkxkww4zf local:charmcraft-slurmd-216838-0-0-amd64/etc/environment --mode=0644
2022-02-23 15:44:52.460 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 chown root:root /etc/environment
2022-02-23 15:44:52.565 Waiting for environment to be ready...
2022-02-23 15:44:52.566 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:52.668 systemctl is-system-running status: starting
2022-02-23 15:44:52.919 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:53.015 systemctl is-system-running status: starting
2022-02-23 15:44:53.266 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:53.358 systemctl is-system-running status: starting
2022-02-23 15:44:53.609 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:53.727 systemctl is-system-running status: starting
2022-02-23 15:44:53.977 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:54.087 systemctl is-system-running status: starting
2022-02-23 15:44:54.337 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:54.441 systemctl is-system-running status: starting
2022-02-23 15:44:54.691 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:54.795 Executing on host: lxc --project charmcraft file push /home/bdx/snap/charmcraft/common/tmpnnpjqa0m local:charmcraft-slurmd-216838-0-0-amd64/etc/craft-instance.conf --mode=0644
2022-02-23 15:44:54.841 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 chown root:root /etc/craft-instance.conf
2022-02-23 15:44:54.942 Executing on host: lxc --project charmcraft file push /home/bdx/snap/charmcraft/common/tmpeoqw79uh local:charmcraft-slurmd-216838-0-0-amd64/etc/hostname --mode=0644
2022-02-23 15:44:54.988 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 chown root:root /etc/hostname
2022-02-23 15:44:55.077 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 hostname -F /etc/hostname
2022-02-23 15:44:55.165 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
2022-02-23 15:44:55.261 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl enable systemd-resolved
2022-02-23 15:44:55.445 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl restart systemd-resolved
2022-02-23 15:44:56.061 Executing on host: lxc --project charmcraft file push /home/bdx/snap/charmcraft/common/tmplkbuawub local:charmcraft-slurmd-216838-0-0-amd64/etc/systemd/network/10-eth0.network --mode=0644
2022-02-23 15:44:56.108 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 chown root:root /etc/systemd/network/10-eth0.network
2022-02-23 15:44:56.209 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl enable systemd-networkd
2022-02-23 15:44:56.390 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl restart systemd-networkd
2022-02-23 15:44:56.812 Waiting for networking to be ready...
2022-02-23 15:44:56.812 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-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
2022-02-23 15:44:56.946 Executing on host: lxc --project charmcraft file push /home/bdx/snap/charmcraft/common/tmpg0495r24 local:charmcraft-slurmd-216838-0-0-amd64/etc/apt/apt.conf.d/00no-recommends --mode=0644
2022-02-23 15:44:56.992 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 chown root:root /etc/apt/apt.conf.d/00no-recommends
2022-02-23 15:44:57.081 Executing on host: lxc --project charmcraft file push /home/bdx/snap/charmcraft/common/tmpqm3wtlp9 local:charmcraft-slurmd-216838-0-0-amd64/etc/apt/apt.conf.d/00update-errors --mode=0644
2022-02-23 15:44:57.128 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 chown root:root /etc/apt/apt.conf.d/00update-errors
2022-02-23 15:44:57.245 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 apt-get update
2022-02-23 15:45:00.443 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 apt-get install -y apt-utils
2022-02-23 15:45:01.022 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 apt-get install -y fuse udev
2022-02-23 15:45:06.260 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl enable systemd-udevd
2022-02-23 15:45:06.442 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl start systemd-udevd
2022-02-23 15:45:06.539 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 apt-get install -y snapd
2022-02-23 15:45:17.648 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl start snapd.socket
2022-02-23 15:45:17.739 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 systemctl restart snapd.service
2022-02-23 15:45:18.014 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 snap wait system seed.loaded
2022-02-23 15:45:18.268 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 rm -f /tmp/charmcraft.snap
2022-02-23 15:45:18.710 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 test -d /tmp
2022-02-23 15:45:18.801 Executing on host: lxc --project charmcraft file push /home/bdx/tmp79hlqucb.tmp-craft/charmcraft.snap local:charmcraft-slurmd-216838-0-0-amd64/tmp/charmcraft.snap --gid=0 --uid=0
2022-02-23 15:45:19.170 Executing in container: lxc --project charmcraft exec local:charmcraft-slurmd-216838-0-0-amd64 -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin CHARMCRAFT_MANAGED_MODE=1 snap install /tmp/charmcraft.snap --classic --dangerous
2022-02-23 15:45:22.846 Executing on host: lxc --project charmcraft config device show local:charmcraft-slurmd-216838-0-0-amd64
2022-02-23 15:45:22.891 Executing on host: lxc --project charmcraft config device add local:charmcraft-slurmd-216838-0-0-amd64 disk-/root/project disk source=/home/bdx/allcode/github/omnivector/slurm-charms/charm-slurmd path=/root/project
2022-02-23 15:45:22.946 charmcraft internal error: LXDError(brief="Failed to add disk to instance 'charmcraft-slurmd-216838-0-0-amd64'.", details='* Command that failed: \'lxc --project charmcraft config device add local:charmcraft-slurmd-216838-0-0-amd64 disk-/root/project disk source=/home/bdx/allcode/github/omnivector/slurm-charms/charm-slurmd path=/root/project\'\n* Command exit code: 1\n* Command standard error output: b\'Error: Invalid devices: Device validation failed for "disk-/root/project": Name can only contain alphanumeric and hyphen characters\\n\'', resolution=None)
2022-02-23 15:45:22.948 Traceback (most recent call last):
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/craft_providers/lxd/lxc.py", line 114, in config_device_add_disk
2022-02-23 15:45:22.948     self._run_lxc(
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/craft_providers/lxd/lxc.py", line 79, in _run_lxc
2022-02-23 15:45:22.948     return subprocess.run(lxc_cmd, check=check, **kwargs)
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/usr/lib/python3.8/subprocess.py", line 516, in run
2022-02-23 15:45:22.948     raise CalledProcessError(retcode, process.args,
2022-02-23 15:45:22.948 subprocess.CalledProcessError: Command '['lxc', '--project', 'charmcraft', 'config', 'device', 'add', 'local:charmcraft-slurmd-216838-0-0-amd64', 'disk-/root/project', 'disk', 'source=/home/bdx/allcode/github/omnivector/slurm-charms/charm-slurmd', 'path=/root/project']' returned non-zero exit status 1.
2022-02-23 15:45:22.948
2022-02-23 15:45:22.948 The above exception was the direct cause of the following exception:
2022-02-23 15:45:22.948 Traceback (most recent call last):
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/charmcraft/main.py", line 382, in main
2022-02-23 15:45:22.948     retcode = dispatcher.run()
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/charmcraft/main.py", line 346, in run
2022-02-23 15:45:22.948     return self.loaded_command.run(self.parsed_command_args)
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/charmcraft/commands/pack.py", line 139, in run
2022-02-23 15:45:22.948     self._pack_charm(parsed_args)
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/charmcraft/commands/pack.py", line 174, in _pack_charm
2022-02-23 15:45:22.948     charms = builder.run(parsed_args.bases_index, destructive_mode=build_args.destructive_mode)
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/charmcraft/commands/build.py", line 410, in run
2022-02-23 15:45:22.948     charm_name = self.pack_charm_in_instance(
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/charmcraft/commands/build.py", line 457, in pack_charm_in_instance
2022-02-23 15:45:22.948     with self.provider.launched_environment(
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/usr/lib/python3.8/contextlib.py", line 113, in __enter__
2022-02-23 15:45:22.948     return next(self.gen)
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/charmcraft/providers/_lxd.py", line 193, in launched_environment
2022-02-23 15:45:22.948     instance.mount(host_source=project_path, target=get_managed_environment_project_path())
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/craft_providers/lxd/lxd_instance.py", line 367, in mount
2022-02-23 15:45:22.948     self.lxc.config_device_add_disk(
2022-02-23 15:45:22.948   File "/snap/charmcraft/761/lib/craft_providers/lxd/lxc.py", line 121, in config_device_add_disk
2022-02-23 15:45:22.948     raise LXDError(
2022-02-23 15:45:22.948 craft_providers.lxd.errors.LXDError: Failed to add disk to instance 'charmcraft-slurmd-216838-0-0-amd64'.
2022-02-23 15:45:22.948 * Command that failed: 'lxc --project charmcraft config device add local:charmcraft-slurmd-216838-0-0-amd64 disk-/root/project disk source=/home/bdx/allcode/github/omnivector/slurm-charms/charm-slurmd path=/root/project'
2022-02-23 15:45:22.948 * Command exit code: 1
2022-02-23 15:45:22.948 * Command standard error output: b'Error: Invalid devices: Device validation failed for "disk-/root/project": Name can only contain alphanumeric and hyphen characters\n'
2022-02-23 15:45:22.948 Full execution log: '/home/bdx/snap/charmcraft/common/cache/charmcraft/log/charmcraft-20220223-154449.556573.log'
jamesbeedy commented 2 years ago

I have not made any changes to my system since I ran this the other day and charmcraft was able to successfully build my charms.

@jnsgruk @jameinel This is the type of stuff that makes us hate the auto-updating snaps. We have no control over keeping a stable environment.... these snaps all auto-update and the next time we log into our systems everything breaks.

This constantly bites our engineers and build systems to the point where people have expressed extreme frustration working with theses tools and snap based systems.

My workflow today has been severely impacted and so have the time and resources of the developers on our team.

I think this opens up a much larger conversation about building a stable system that doesn't depend on snaps.

heitorPB commented 2 years ago

I would love a snap free system. They are so painful and frustrates us every time.

Can we get a .deb for charmcraft that we can apt install charmcraft?

jamesbeedy commented 2 years ago

I see that the lxd snap updated today, which might explain something here.

15:57 $ snap info lxd
name:      lxd
summary:   LXD - container and VM manager
publisher: Canonical✓
store-url: https://snapcraft.io/lxd
contact:   https://github.com/lxc/lxd/issues
license:   unset
description: |
  LXD is a system container and virtual machine manager.

  It offers a simple CLI and REST API to manage local or remote instances,
  uses an image based workflow and support for a variety of advanced features.

  Images are available for all Ubuntu releases and architectures as well
  as for a wide number of other Linux distributions. Existing
  integrations with many deployment and operation tools, makes it work
  just like a public cloud, except everything is under your control.

  LXD containers are lightweight, secure by default and a great
  alternative to virtual machines when running Linux on Linux.

  LXD virtual machines are modern and secure, using UEFI and secure-boot
  by default and a great choice when a different kernel or operating
  system is needed.

  With clustering, up to 50 LXD servers can be easily joined and managed
  together with the same tools and APIs and without needing any external
  dependencies.

  Supported configuration options for the snap (snap set lxd [<key>=<value>...]):

    - ceph.builtin: Use snap-specific Ceph configuration [default=false]
    - ceph.external: Use the system's ceph tools (ignores ceph.builtin) [default=false]
    - criu.enable: Enable experimental live-migration support [default=false]
    - daemon.debug: Increase logging to debug level [default=false]
    - daemon.group: Set group of users that can interact with LXD [default=lxd]
    - daemon.preseed: Pass a YAML configuration to `lxd init` on initial start
    - daemon.syslog: Send LXD log events to syslog [default=false]
    - lvm.external: Use the system's LVM tools [default=false]
    - lxcfs.pidfd: Start per-container process tracking [default=false]
    - lxcfs.loadavg: Start tracking per-container load average [default=false]
    - lxcfs.cfs: Consider CPU shares for CPU usage [default=false]
    - openvswitch.builtin: Run a snap-specific OVS daemon [default=false]
    - shiftfs.enable: Enable shiftfs support [default=auto]

  For system-wide configuration of the CLI, place your configuration in
  /var/snap/lxd/common/global-conf/ (config.yml and servercerts)
commands:
  - lxd.benchmark
  - lxd.buginfo
  - lxd.check-kernel
  - lxd.lxc
  - lxd.lxc-to-lxd
  - lxd
  - lxd.migrate
services:
  lxd.activate:    oneshot, enabled, inactive
  lxd.daemon:      simple, enabled, active
  lxd.user-daemon: simple, enabled, inactive
snap-id:      J60k4JY0HppjwOjW8dZdYc8obXKxujRu
tracking:     latest/stable
refresh-date: today at 13:32 UTC
channels:
  latest/stable:    4.23        2022-02-17 (22467) 81MB -
  latest/candidate: 4.23        2022-02-22 (22511) 81MB -
  latest/beta:      ↑
  latest/edge:      git-7cf7ff1 2022-02-22 (22518) 82MB -
  4.23/stable:      4.23        2022-02-17 (22467) 81MB -
  4.23/candidate:   4.23        2022-02-22 (22511) 81MB -
  4.23/beta:        ↑
  4.23/edge:        ↑
  4.22/stable:      4.22        2022-02-12 (22407) 79MB -
  4.22/candidate:   4.22        2022-02-11 (22407) 79MB -
  4.22/beta:        ↑
  4.22/edge:        ↑
  4.21/stable:      4.21        2022-01-07 (22162) 77MB -
  4.21/candidate:   4.21        2022-01-02 (22162) 77MB -
  4.21/beta:        ↑
  4.21/edge:        ↑
  4.20/stable:      4.20        2021-11-18 (21902) 76MB -
  4.20/candidate:   4.20        2021-11-14 (21902) 76MB -
  4.20/beta:        ↑
  4.20/edge:        ↑
  4.0/stable:       4.0.8       2021-11-06 (21835) 70MB -
  4.0/candidate:    4.0.9       2022-02-17 (22482) 71MB -
  4.0/beta:         ↑
  4.0/edge:         git-5628fc6 2022-02-17 (22481) 71MB -
  3.0/stable:       3.0.4       2019-10-10 (11348) 55MB -
  3.0/candidate:    3.0.4       2019-10-10 (11348) 55MB -
  3.0/beta:         ↑
  3.0/edge:         git-81b81b9 2019-10-10 (11362) 55MB -
  2.0/stable:       2.0.12      2020-08-18 (16879) 38MB -
  2.0/candidate:    2.0.12      2021-03-22 (19859) 39MB -
  2.0/beta:         ↑
  2.0/edge:         git-82c7d62 2021-03-22 (19857) 39MB -
installed:          4.23                   (22511) 81MB -
jnsgruk commented 2 years ago

That is strange -- charmcraft hasn't been updated particularly recently unless you're following the latest/edge track, which probably isn't a great idea.

❯ snap info charmcraft    
name:      charmcraft
# ...
channels:
  latest/stable:    1.4.0             2022-01-21 (761) 59MB classic
  latest/candidate: 1.4.0             2022-01-11 (761) 59MB classic
  latest/beta:      ↑                                       
  latest/edge:      1.4.0+50.g434361d 2022-02-22 (814) 59MB classic
installed:          1.4.0                        (761) 59MB classic

Depending on where/how you're using this, there are a few options for you:

There have been a number of major changes to charmcraft of late, including migration to a more generic 'parts-based' build system, and a common library for store interactions. I suspect the pace of changes with such magnitude will slow slightly from now - so I'd encourage you to stick with the snaps to make sure you're getting the latest updates, security fixes, etc.

@facundobatista may have more to add here.

jamesbeedy commented 2 years ago

@jnsgruk thanks for the response. I think there are some modifications we can make to get us out of this auto-updating situation. Specifically, “make sure you're getting the latest updates” is what we are trying not to do here. It is this functionality that has landed us in the bite of this bug. Going forward, we will ensure that none of our systems use either of the lxd or charmcraft snaps so we can prevent as much as possible ending up in this position again.

heitorPB commented 2 years ago

I created the issue https://github.com/canonical/charmcraft/issues/686 to move the discussion about snaps there.

How do we get charmcraft into a working state? I purged LXD from my system, installed the 4.22 version again, I can start containers and VMs, but charmcraft is still crashing with the same errors as above.

jamesbeedy commented 2 years ago

@heitorPB you have to run it with --destructive

facundobatista commented 2 years ago

There was a glitch in the LXD project, for some revisions they were too strict for the device name. This is fixed already, you should get the updates automatically, and the problem should be gone in LXD 4.23 revision 22525 or higher.