Charmcraft edge build hangs indefinitely when lxd image can't be found.
Metadata
Current evaluation
Missing-image LXD launch failures now fail fast with an error instead of polling a nonexistent instance forever, resolving the Charmcraft edge hang.
Resolution: closed resolved
Reason: The closed-issue record identifies improved instance-launch error handling as the fix: missing-image launch failures are surfaced instead of retried indefinitely. This matches the reported infinite lxc info polling after lxc launch returned 1; no resolving PR or commit is identified in the available metadata.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### Bug Description
On stable, it fails as expected:
```
lengau@hyperion:~/Work/Test/charms/notebook-operators/charms/jupyter-controller$ charmcraft pack
charmcraft internal error: LXDError(brief="Failed to launch instance 'charmcraft-jupyter-controller-39074812-0-0-amd64'.", details='* Command that failed: \'lxc --project charmcraft launch craft-com.ubuntu.cloud-buildd:core20 local:charmcraft-jupyter-controller-39074812-0-0-amd64 --config security.syscalls.intercept.mknod=true\'\n* Command exit code: 1\n* Command output: b\'Creating charmcraft-jupyter-controller-39074812-0-0-amd64\\n\'\n* Command standard error output: b"Error: Failed instance creation: Failed getting remote image info: Failed getting image: The requested image couldn\'t be found\\n"', resolution=None)
Full execution log: '/home/lengau/.local/state/charmcraft/log/charmcraft-20230921-174755.493828.log'
```
On edge, it hangs while trying to create the image:
lengau@hyperion:~/Work/Test/charms/notebook-operators/charms/jupyter-controller$ charmcraft pack --verbosity=debug
2023-09-21 17:53:56.295 Starting charmcraft version 2.4.1.post41+git97d95b3
2023-09-21 17:53:56.295 Logging execution to '/home/lengau/.local/state/charmcraft/log/charmcraft-20230921-175356.294796.log'
2023-09-21 17:53:56.297 Reading '/home/lengau/Work/Test/charms/notebook-operators/charms/jupyter-controller/metadata.yaml'
2023-09-21 17:53:56.299 Validating metadata keys
2023-09-21 17:53:56.301 Reading '/home/lengau/Work/Test/charms/notebook-operators/charms/jupyter-controller/actions.yaml'
2023-09-21 17:53:56.301 Reading '/home/lengau/Work/Test/charms/notebook-operators/charms/jupyter-controller/config.yaml'
2023-09-21 17:53:56.302 Validating config.yaml
2023-09-21 17:53:56.303 System details: OSPlatform(system='neon', release='22.04', machine='x86_64'); Environment: DESKTOP_SESSION='plasma', XDG_CURRENT_DESKTOP='KDE'
2023-09-21 17:53:56.311 Packing the charm.
2023-09-21 17:53:56.477 Executing on host: lxc --project default profile show local:default
2023-09-21 17:53:56.563 Building for 'bases[0]' as host matches 'build-on[0]'.
2023-09-21 17:53:56.564 Building for 'bases[0][0]'.
2023-09-21 17:53:56.564 Launching environment to pack for base name='ubuntu' channel='20.04' architectures=['amd64'] (may take a while the first time but it's reusable)
2023-09-21 17:53:56.565 Using hostname 'charmcraft-jupyter-controller-39074812-0-0-amd64'
2023-09-21 17:53:56.565 Executing on host: lxc remote list --format=yaml
2023-09-21 17:53:56.649 Remote 'craft-com.ubuntu.cloud-buildd' already exists.
2023-09-21 17:53:56.649 Executing on host: lxc project list local: --format=yaml
2023-09-21 17:53:56.738 Set LXD instance name to 'charmcraft-jupyter-controller-39074812-0-0-amd64'
2023-09-21 17:53:56.738 Checking for instance 'charmcraft-jupyter-controller-39074812-0-0-amd64' in project 'charmcraft' in remote 'local'
2023-09-21 17:53:56.738 Executing on host: lxc --project charmcraft list local: --format=yaml
2023-09-21 17:53:56.832 Instance 'charmcraft-jupyter-controller-39074812-0-0-amd64' does not exist.
2023-09-21 17:53:56.832 Set LXD instance name to 'base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15'
2023-09-21 17:53:56.832 Checking for base instance 'base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15' in project 'charmcraft' in remote 'local'
2023-09-21 17:53:56.833 Executing on host: lxc --project charmcraft list local: --format=yaml
2023-09-21 17:53:56.925 Base instance 'base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15' does not exist.
2023-09-21 17:53:56.925 Creating new instance from remote
2023-09-21 17:53:56.925 Creating new base instance from remote
2023-09-21 17:53:56.925 Creating new base instance from image 'core20' from remote 'craft-com.ubuntu.cloud-buildd'
2023-09-21 17:53:56.925 Executing on host: lxc --project charmcraft info local:
2023-09-21 17:53:57.035 Executing on host: lxc --project charmcraft launch craft-com.ubuntu.cloud-buildd:core20 local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15 --config security.syscalls.intercept.mknod=true --config user.craft_providers.status=STARTING --config user.craft_providers.timer=2023-09-21T21:53:57.035280+00:00
2023-09-21 17:53:57.152 Failed to launch instance base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15, retrying 0.
2023-09-21 17:53:57.152 Command '['lxc', '--project', 'charmcraft', 'launch', 'craft-com.ubuntu.cloud-buildd:core20', 'local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15', '--config', 'security.syscalls.intercept.mknod=true', '--config', 'user.craft_providers.status=STARTING', '--config', 'user.craft_providers.timer=2023-09-21T21:53:57.035280+00:00']' returned non-zero exit status 1.
2023-09-21 17:53:57.152 Failed to launch instance base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15, checking status.
2023-09-21 17:53:57.152 Executing on host: lxc --project charmcraft info local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15
2023-09-21 17:54:00.241 Executing on host: lxc --project charmcraft info local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15
2023-09-21 17:54:03.321 Executing on host: lxc --project charmcraft info local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15 | (2.6s)
### To Reproduce
1. Clone a new charm (I used `jupyter-controller` from https://github.com/canonical/notebook-operators)
2. Clear your LXD image cache (`lxc image list` and `lxc image remove` for each fingerprint)
3. Pack the charm
### Environment
lxd backend after purging and reinstalling lxd
### charmcraft.yaml
```shell
n/a
```
### Relevant log output
```shell
lengau@hyperion:~/Work/Test/charms/notebook-operators/charms/jupyter-controller$ charmcraft pack --verbosity=debug
2023-09-21 17:53:56.295 Starting charmcraft version 2.4.1.post41+git97d95b3
2023-09-21 17:53:56.295 Logging execution to '/home/lengau/.local/state/charmcraft/log/charmcraft-20230921-175356.294796.log'
2023-09-21 17:53:56.297 Reading '/home/lengau/Work/Test/charms/notebook-operators/charms/jupyter-controller/metadata.yaml'
2023-09-21 17:53:56.299 Validating metadata keys
2023-09-21 17:53:56.301 Reading '/home/lengau/Work/Test/charms/notebook-operators/charms/jupyter-controller/actions.yaml'
2023-09-21 17:53:56.301 Reading '/home/lengau/Work/Test/charms/notebook-operators/charms/jupyter-controller/config.yaml'
2023-09-21 17:53:56.302 Validating config.yaml
2023-09-21 17:53:56.303 System details: OSPlatform(system='neon', release='22.04', machine='x86_64'); Environment: DESKTOP_SESSION='plasma', XDG_CURRENT_DESKTOP='KDE'
2023-09-21 17:53:56.311 Packing the charm.
2023-09-21 17:53:56.477 Executing on host: lxc --project default profile show local:default
2023-09-21 17:53:56.563 Building for 'bases[0]' as host matches 'build-on[0]'.
2023-09-21 17:53:56.564 Building for 'bases[0][0]'.
2023-09-21 17:53:56.564 Launching environment to pack for base name='ubuntu' channel='20.04' architectures=['amd64'] (may take a while the first time but it's reusable)
2023-09-21 17:53:56.565 Using hostname 'charmcraft-jupyter-controller-39074812-0-0-amd64'
2023-09-21 17:53:56.565 Executing on host: lxc remote list --format=yaml
2023-09-21 17:53:56.649 Remote 'craft-com.ubuntu.cloud-buildd' already exists.
2023-09-21 17:53:56.649 Executing on host: lxc project list local: --format=yaml
2023-09-21 17:53:56.738 Set LXD instance name to 'charmcraft-jupyter-controller-39074812-0-0-amd64'
2023-09-21 17:53:56.738 Checking for instance 'charmcraft-jupyter-controller-39074812-0-0-amd64' in project 'charmcraft' in remote 'local'
2023-09-21 17:53:56.738 Executing on host: lxc --project charmcraft list local: --format=yaml
2023-09-21 17:53:56.832 Instance 'charmcraft-jupyter-controller-39074812-0-0-amd64' does not exist.
2023-09-21 17:53:56.832 Set LXD instance name to 'base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15'
2023-09-21 17:53:56.832 Checking for base instance 'base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15' in project 'charmcraft' in remote 'local'
2023-09-21 17:53:56.833 Executing on host: lxc --project charmcraft list local: --format=yaml
2023-09-21 17:53:56.925 Base instance 'base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15' does not exist.
2023-09-21 17:53:56.925 Creating new instance from remote
2023-09-21 17:53:56.925 Creating new base instance from remote
2023-09-21 17:53:56.925 Creating new base instance from image 'core20' from remote 'craft-com.ubuntu.cloud-buildd'
2023-09-21 17:53:56.925 Executing on host: lxc --project charmcraft info local:
2023-09-21 17:53:57.035 Executing on host: lxc --project charmcraft launch craft-com.ubuntu.cloud-buildd:core20 local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15 --config security.syscalls.intercept.mknod=true --config user.craft_providers.status=STARTING --config user.craft_providers.timer=2023-09-21T21:53:57.035280+00:00
2023-09-21 17:53:57.152 Failed to launch instance base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15, retrying 0.
2023-09-21 17:53:57.152 Command '['lxc', '--project', 'charmcraft', 'launch', 'craft-com.ubuntu.cloud-buildd:core20', 'local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15', '--config', 'security.syscalls.intercept.mknod=true', '--config', 'user.craft_providers.status=STARTING', '--config', 'user.craft_providers.timer=2023-09-21T21:53:57.035280+00:00']' returned non-zero exit status 1.
2023-09-21 17:53:57.152 Failed to launch instance base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15, checking status.
2023-09-21 17:53:57.152 Executing on host: lxc --project charmcraft info local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15
2023-09-21 17:54:00.241 Executing on host: lxc --project charmcraft info local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15
2023-09-21 17:54:03.321 Executing on host: lxc --project charmcraft info local:base-instance-charmcraft-buildd-base-v20-c0c7e68d7300c2653f15 | (2.6s)
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Missing-image LXD launch failures now fail fast with an error instead of polling a nonexistent instance forever, resolving the Charmcraft edge hang. | |
| stealth/space-bunny-alpha | — | closed resolved | Fail-fast LXD launch handling was added: a missing image now raises immediately instead of entering indefinite status polling, resolving the edge-build hang. | |
| qwen/qwen3.6-35b-a3b | — | closed resolved | Fixed infinite hang when LXD image not found by improving error handling in instance launch to fail fast instead of retrying indefinitely |
Update history
| Date | Change |
|---|---|
| created |
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1260 Charmcraft hangs or fails with LXD 5.18 | charmcraft | closed | LXD released a fix for the 5.18 image lookup failure; Charmcraft’s separate edge retry hang was fixed by craft-providers#415 (commit da95d03). | |
| #1047 Charmcraft stuck on "launching environment" | charmcraft | closed | Craft-providers now verifies network connectivity and times out hung LXD setup, preventing indefinite waits; underlying LXD/Docker firewall conflicts may still require configuration. |