← Back to issue list

Charmcraft edge build hangs indefinitely when lxd image can't be found.

View original Github issue

Metadata

Project
craft-providers
Number
#413
Type
issue
State
closed
Author
lengau
Labels
—
Created
Updated
Closed

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).
82%
#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.
73%