canonical / canonical/cloud-init

[bug] DataSourceGCELocal fails on GCE c3-metal instances due to NIC not ready at first boot

Open
#6,737 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
3.8k
Forks
1.1k
Avg merge
2d 23h
Merged PRs (30d)
18

Description

# Bug report
C3-metal instances on Google Cloud fail to boot properly because cloud-init runs before the network interface (NIC) is up. As a result, cloud-init cannot detect any instance datasource.

## Steps to reproduce the problem
1. Launch a c3-standard-192-metal machine on Google cloud.
```
gcloud compute instances create goldberl-c3-test-01 \
--project=ubuntu-os-support \
--zone=europe-west1-c \
--machine-type=c3-standard-192-metal \
--maintenance-policy=TERMINATE \
--provisioning-model=STANDARD \
--image=projects/ubuntu-os-support/global/images/melissa-questing-serial-eu \
--boot-disk-size=10GB \
--boot-disk-auto-delete
```
2. ssh into the instance
```
gcloud compute ssh goldberl-c3-test-01 --zone=europe-west1-c
```
3. See the `cloud-init status --long`
```
ubuntu@goldberl-c3-test-01:~$ cloud-init status --long
status: error
extended_status: error - done
boot_status_code: enabled-by-generator
last_update: Thu, 01 Jan 1970 00:00:28 +0000
detail: Cloud-init enabled by systemd cloud-init-generator
errors:
- No instance datasource found.
- Can not apply stage config, no datasource found! Likely bad things to come!
- Can not apply stage final, no datasource found! Likely bad things to come!
recoverable_errors:
WARNING:
- required key instance-id returned nothing. not GCE
- No instance datasource found! Likely bad things to come!
- Getting data from failed
- Getting data from failed
- Can not apply stage config, no datasource found! Likely bad things to come!
- Can not apply stage final, no datasource found! Likely bad things to come!
```
**Other relevant logs**
```
cloud-init analyze show
-- Boot Record 01 --
The total time elapsed since completing an event is printed after the "@" character.
The time the event takes is printed after the "+" character.

Starting stage: init-local
|`->no cache found @00.00300s +00.00100s
|`->no local data found from DataSourceGCELocal @00.01100s +00.00000s
Finished stage: (init-local) 00.01700 seconds

Starting stage: init-network
|`->no cache found @00.49000s +00.00000s
|`->no network data found from DataSourceGCE @00.49000s +05.01900s
Finished stage: (init-network) 08.86900 seconds

Starting stage: modules-config
|`->no cache found @10.74300s +00.00000s
Finished stage: (modules-config) 00.02900 seconds

Starting stage: modules-final
|`->no cache found @12.58300s +00.00100s
Finished stage: (modules-final) 00.02800 seconds

Total Time: 8.94300 seconds

1 boot records analyzed
```
```
cloud-init analyze blame
-- Boot Record 01 --
05.01900s (init-network/search-GCE)
00.00100s (modules-final/check-cache)
00.00100s (init-local/check-cache)
00.00000s (modules-config/check-cache)
00.00000s (init-network/check-cache)
00.00000s (init-local/search-GCELocal)
```
```
cloud-init analyze boot
-- Most Recent Boot Record --
Kernel Started at: 2026-02-03 03:26:06.222816+00:00
Kernel ended boot at: 2026-02-03 03:26:18.999937+00:00
Kernel time to boot (seconds): 12.77712106704712
Cloud-init activated by systemd at: 2026-02-03 03:26:22.327605+00:00
Time between Kernel end boot and Cloud-init activation (seconds): 3.3276679515838623
Cloud-init start: 2026-02-03 03:26:22.388000+00:00
successful
```
```
ubuntu@goldberl-c3-test-01:~$ systemctl status cloud-init-network.service
× cloud-init-network.service - Cloud-init: Network Stage
Loaded: loaded (/usr/lib/systemd/system/cloud-init-network.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Mon 2026-02-09 20:39:29 UTC; 4min 48s ago
Invocation: 63fe73bcd7da4604bfeed67d104ef249
Process: 2615 ExecStart=sh -c echo "start" | nc -Uu -W1 /run/cloud-init/share/network.sock -s /run/cloud-init/share/network-return.sock>
Main PID: 2615 (code=exited, status=1/FAILURE)
Mem peak: 1.7M
CPU: 15ms

Feb 09 20:39:20 localhost systemd[1]: Starting cloud-init-network.service - Cloud-init: Network Stage...
Feb 09 20:39:29 localhost sh[2618]: Completed socket interaction for boot stage network
Feb 09 20:39:29 localhost systemd[1]: cloud-init-network.service: Main process exited, code=exited, status=1/FAILURE
Feb 09 20:39:29 localhost systemd[1]: cloud-init-network.service: Failed with result 'exit-code'.
Feb 09 20:39:29 localhost systemd[1]: Failed to start cloud-init-network.service - Cloud-init: Network Stage.

```

## Environment details
- Cloud-init version: cloud-init 25.3~2g890873f5-0ubuntu2
- Operating System Distribution: Ubuntu Questing (25.10)
- Cloud provider, platform or installer type: Google

## cloud-init logs
[gcloud-c3-cloud-init.tar.gz](https://github.com/user-attachments/files/25191490/gcloud-c3-cloud-init.tar.gz)

## Workarounds
Adding a 5-second delay to `cloud-init-local.service` allows the VM to boot correctly

## Additional info
- Only affects certain instance types (c3-metal); c4d-metal works consistently.
- NOT reproducible on 22.04,
- Somewhat consistently reproducible on 24.04, 25.04, and 25.10
- This issue seems similar to #6697

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.