canonical / canonical/pycloudlib

Launching a focal LXD VM instance will sometimes fail to use `cloud-init status --wait` properly

Open
#67 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
22
Forks
42
PR merge metrics
No merged PRs in 30d

Description

I just saw this (from the cloud-init testing framework):

```
INFO integration_testing:clouds.py:83 Launching instance with launch_kwargs:
image_id=ubuntu:8989566a1d56966b6a23e625920afadc3573c6c354fda43ba59e3163fb0e2d4d
user_data=None
wait=False
config_dict={'user.network-config': 'bridges:\n ovs-br:\n dhcp4: true\n interfaces:\n - enp5s0\n macaddress: 52:54:00:d9:08:1c\n mtu: 1500\n openvswitch: {}\nethernets:\n enp5s0:\n mtu: 1500\n set-name: enp5s0\n match:\n macaddress: de:ad:be:ef:12:34\nversion: 2\n', 'volatile.eth0.hwaddr': 'de:ad:be:ef:12:34'}
INFO pycloudlib.instance:instance.py:166 executing: sh -c whoami
INFO pycloudlib.instance:instance.py:166 executing: sh -c whoami
INFO pycloudlib.instance:instance.py:166 executing: sh -c whoami
INFO pycloudlib.instance:instance.py:166 executing: sh -c whoami
INFO pycloudlib.instance:instance.py:166 executing: sh -c 'cloud-init status --help'
INFO pycloudlib.instance:instance.py:166 executing: sh -c 'i=0; while [ $i -lt 120 ] && i=$(($i+1)); do [ "$(runlevel)" = "N 2" ] && [ -f /run/cloud-init/result.json ] && exit 0; sleep 1; done; exit 1'
INFO pycloudlib.instance:instance.py:166 executing: sh -c 'cloud-init status --help'
INFO pycloudlib.instance:instance.py:166 executing: cloud-init status --wait --long
INFO pycloudlib.instance:instance.py:166 executing: sh -c 'cloud-init status --help'
INFO pycloudlib.instance:instance.py:166 executing: cloud-init status --wait --long
INFO pycloudlib.instance:instance.py:166 executing: sh -c 'cloud-init status --help'
INFO pycloudlib.instance:instance.py:166 executing: cloud-init status --wait --long
INFO pycloudlib.instance:instance.py:166 executing: sh -c 'cloud-init status --help'
INFO pycloudlib.instance:instance.py:166 executing: cloud-init status --wait --long
INFO pycloudlib.instance:instance.py:166 executing: sh -c 'cloud-init status --help'
INFO pycloudlib.instance:instance.py:166 executing: cloud-init status --wait --long
INFO integration_testing:clouds.py:91 Launched instance: LXDInstance(name=merry-dog)
```

This indicates to me that `_wait_for_execute` is not working entirely as expected (my supposition is that `cloud-init status --help` fails the first time because of an execution error), but without more logging it's difficult to be sure.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.