charmcraft snap doesn't work with snap parallel installs
Metadata
Current evaluation
Fixed by merged PR canonical/charmcraft#1950 (commit 2399ddf8), which enabled Charmcraft to work with parallel-installed snaps and added regression coverage.
Resolution: closed resolved
Reason: The issue was resolved by merged PR #1950 in commit 2399ddf8. The change fixed parallel snap-install handling and added spread regression coverage.
Evaluated by: mr-cal-bot
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 |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merged PR canonical/charmcraft#1950 (commit 2399ddf8), which enabled Charmcraft to work with parallel-installed snaps and added regression coverage. | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merged PR canonical/charmcraft#1950, which enabled parallel-installed Charmcraft snaps and added regression coverage in commit 2399ddf8. | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed by merged PR #1950, which enabled parallel-installed Charmcraft snaps and added spread coverage in commit 2399ddf8. | |
| 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. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/charmcraft#1950
(confidence 100%)
Merged PR explicitly fixes the parallel-installed Charmcraft snap issue.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1950 fix: make charmcraft work with snap parallel installs | charmcraft | merged | Merged PR #1950 via commit 2399ddf8, fixing Charmcraft conflicts during parallel snap installs and adding spread regression coverage for issue #1770. | |
| #411 Support snap parallel installs | craft-application | closed | Parallel-installed snap injection was fixed by PR #467 (commit 77a3582b); #411 was closed as fixed, with a separate craft-providers gap noted. | |
| #5085 fix: allow parallel installations of signed snapcraft snaps | snapcraft | merged | Merged PR #5085 fixed parallel installation of signed Snapcraft snaps, resolving #4683 and #4927; #5087 backported the fix to hotfix/7.5. | |
| #2465 fix(snap): workaround for snapcraft/craft-application bug | charmcraft | merged | Merged charmcraft#2465, adding a three-line Snap build workaround for the craft-application bug tracked in snapcraft#5831; it was the only change for 4.0.1. |