canonical / canonical/pycloudlib
Launching a focal LXD VM instance will sometimes fail to use `cloud-init status --wait` properly
- 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
Assessment
This issue has not been assessed yet.