Network disconnect when booting the NVMe/TCP installed system

Bug #2084012 reported by Olivier Gayot
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
curtin
New
Undecided
Unassigned
subiquity
Triaged
Medium
Unassigned

Bug Description

After going through the NVMe/TCP PoC and when booting the newly installed system (initiator VM), the boot phase gets interrupted with:

nvme0c0n1: I/O Cmd(0x2) @ LBA 5726464, 32 blocks, I/O Error (sct 0x3 / sc 0x71)
nvme0c0n1: I/O Cmd(0x2) @ LBA 4181768, 80 blocks, I/O Error (sct 0x3 / sc 0x71)
I/O error, dev nvme0c0n1, sector 4181768 op 0x0:(READ) flags 0x2080700 phys_seg 4 prio class 0
I/O error, dev nvme0c0n1, sector 5726464 op 0x0:(READ) flags 0x2080700 phys_seg 4 prio class 0
[...]
nvme nvme0: failed nvme_keep_alive_end_io error=10
nvme nvme0: failed to bind queue 0 socket -99

This indicates that the network daemon attempted to re-apply the network configuration ; that was already applied during the initramfs stage.

This happens because:

1. The network interface was renamed from enp1s0 (or something else) to nbft0 during the initramfs stage and the network daemon does not know about the change. It still expects enp1s0 to exist.
2. The network daemon is not aware that the interface is essential for booting ; and that the network configuration should not be re-applied while the system is on.

This can be addressed by modifying /etc/cloud/cloud.cfg.d/90-installer-network.cfg; from

```
network:
  ethernets:
    enp1s0:
      dhcp4: true
  version: 2
```

to

```
network:
  ethernets:
    # Use nbft0, not enp1s0 because the interface will be
    # renamed during the initramfs stage
    nbft0:
      dhcp4: true
      # Ask the network daemon not to re-apply the config
      # when the system is on
      critical: true
  version: 2
```

Related branches

Olivier Gayot (ogayot)
description: updated
Changed in subiquity:
status: New → Triaged
importance: Undecided → High
importance: High → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.