← Back to issue list

charmcraft snap doesn't work with snap parallel installs

View original Github issue

Metadata

Project
charmcraft
Number
#1770
Type
issue
State
closed
Author
samuelallan72
Labels
Created
Updated
Closed

Current evaluation

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.

Suggested action:

No scores available.

Issue body

### Bug Description Now that charms are beginning to be upgraded to use charmcraft 3, I want to have charmcraft v2 and v3 installed so I can work with all the charms I need to. I tried to do this for the snap using the "parallel installs" feature: ``` sudo snap install charmcraft --channel latest/stable --classic sudo snap install charmcraft_3 --channel 3.x/beta --classic ``` But this failed (see logs section). It appears that charmcraft is trying to access a hardcoded path that doesn't exist on the parallel install? ### To Reproduce 1. install charmcraft 2 and 3 snaps with the parallel install feature (note the underscore postfix): ``` sudo snap install charmcraft --channel latest/stable --classic sudo snap install charmcraft_3 --channel 3.x/beta --classic ``` 2. try to use `charmcraft_3` to build a charm. ### Environment Ubuntu 24.04 LTS ### charmcraft.yaml ```shell type: charm parts: charm: plugin: dump source: . base: ubuntu@24.04 platforms: amd64: build-on: amd64 build-for: amd64 arm64: build-on: arm64 build-for: arm64 ppc64el: build-on: ppc64el build-for: ppc64el s390x: build-on: s390x build-for: s390x ``` ### Relevant log output ```shell # here I already have charmcraft 2.7 installed: $ sudo snap install charmcraft --channel latest/stable --classic --- $ sudo snap install charmcraft_3 --channel 3.x/beta --classic charmcraft_3 (3.x/candidate) 3.1.1 from Canonical✓ installed Channel 3.x/beta for charmcraft_3 is closed; temporarily forwarding to 3.x/candidate. $ charmcraft_3 -v pack Starting charmcraft, version 3.1.1 Logging execution to '/home/ubuntu/.local/state/charmcraft/log/charmcraft-20240730-111057.635886.log' Launching managed ubuntu 24.04 instance... Creating new instance from remote Creating new base instance from remote Creating new instance from base instance Starting instance Starting charmcraft version 2.7.1 Logging execution to '/tmp/charmcraft.log' Bad charmcraft.yaml content: - extra field 'base' not permitted in top-level configuration - extra field 'platforms' not permitted in top-level configuration Failed to execute charmcraft in instance. Full execution log: '/home/ubuntu/.local/state/charmcraft/log/charmcraft-20240730-111057.635886.log' $ sudo snap remove charmcraft charmcraft removed $ charmcraft_3 -v pack Starting charmcraft, version 3.1.1 Logging execution to '/home/ubuntu/.local/state/charmcraft/log/charmcraft-20240730-112715.840030.log' Launching managed ubuntu 24.04 instance... Creating new instance from remote Creating new base instance from remote charmcraft internal error: HTTPError('404 Client Error: Not Found for url: http+unix://%2Frun%2Fsnapd.socket/v2/snaps/charmcraft') Full execution log: '/home/ubuntu/.local/state/charmcraft/log/charmcraft-20240730-112715.840030.log' $ sudo snap remove charmcraft_3 charmcraft_3 removed $ sudo snap install charmcraft --channel 3.x/beta --classic charmcraft (3.x/candidate) 3.1.1 from Canonical✓ installed Channel 3.x/beta for charmcraft is closed; temporarily forwarding to 3.x/candidate. $ charmcraft clean $ charmcraft -v pack Starting charmcraft, version 3.1.1 Logging execution to '/home/ubuntu/.local/state/charmcraft/log/charmcraft-20240730-114924.278890.log' Launching managed ubuntu 24.04 instance... Creating new instance from remote Creating new base instance from remote Creating new instance from base instance Starting instance Starting charmcraft, version 3.1.1 Logging execution to '/tmp/charmcraft.log' Starting charmcraft, version 3.1.1 Logging execution to '/tmp/charmcraft.log' Initialising lifecycle Installing build-packages Pulling charm Building charm :: + cp --archive --link --no-dereference . /root/parts/charm/install Staging charm Priming charm Packing... Packing charm ceph-osd_amd64.charm Packed ceph-osd_amd64.charm ```

Evaluation history

Date Model Scores Action Summary
qwen3.6-35b-a3b-mtp-q6 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.
qwen/qwen3.6-35b-a3b Closed as blocked by upstream craft-providers#622. Root cause: snapd endpoints ignore instance keys. Resolution requires craft-application to dynamically append instance keys to snapd URLs.
qwen/qwen3.6-35b-a3b Closed as blocked by craft-providers#622. Parallel installs fail due to hardcoded snap names in snapd calls. Fix requires craft-application or craft-providers to dynamically append SNAP_INSTANCE_KEY to prevent path conflicts.
qwen3.6-35b-a3b-mtp-q6 Closed as blocked by craft-providers#622. Parallel installs fail because snapd API calls ignore instance keys. Fix identified in craft-application; internal ticket CRAFT-3351 created. Awaiting blocking dependency.
qwen3.6-35b-a3b-mtp-q6 Closed and deferred to craft-providers issue #622. Parallel snap installs fail because snapd API calls ignore instance keys. Resolution requires dynamically appending the instance key via SNAP_INSTANCE environment variables.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#411 Support snap parallel installs craft-application closed Closed. The initial fix was merged into craft-application, but full parallel snap support requires a follow-up update in craft-providers to correctly parse snap names with underscores.
77%
#4683 Cannot use parallel installations of snapcraft if a non-aliased version is not installed snapcraft closed Parallel snapcraft installations failed when injecting non-aliased versions due to malformed assertion headers. The bug was fixed by correcting snap name parsing in craft-providers, with the solution merged via PRs #5085 and #5087.
76%
#1950 fix: make charmcraft work with snap parallel installs charmcraft merged Merged to resolve issue #1770, enabling charmcraft to operate with snap parallel installs. Approved by two reviewers, the update modifies five files with 55 additions and 15 deletions.
75%
#1202 `charmcraft` installs newer version in LXC container & doesn't respect pinned snap revision charmcraft closed 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.
71%