MAAS/curtin generate invalid /e/n/i and failed deployment for nodes with long (biosdevname) interface names, which in turn have VLANs

Bug #1574771 reported by Dimiter Naydenov
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MAAS
Invalid
High
Unassigned
1.9
Invalid
High
Unassigned

Bug Description

I have MAAS 2.0.0 (beta4+bzr4944) and an Intel NUC node with 2 NICs (second one usb3-to-ethernet adapter), commissioned with xenial: http://paste.ubuntu.com/16052205/.

If I try to deploy this, it never completes, but since the console gets cleared soon after the initial boot messages, it took me some time to figure out what's wrong. It turned out the /e/n/i maas (or curtin) generates for the node (using this result from 'get-curtin-config <id>': http://paste.ubuntu.com/16052334/) contains stanzas like 'iface enx00e1000015de.200 inet manual'. That name is too long for ifup (or ip link) to handle, as it exceeds the Linux device name length limit (16 characters).

It's relatively easy to workaround this, by renaming the second NIC from 'enx00e1000015de' to e.g. 'eno2' after commissioning. MAAS automatically renames all its children (VLAN) NICs correctly, and the deployment completes successfully, as expected.

summary: - MAAS/curtin are generate invalid /e/n/i causing failed deployment for
- nodes with long (biosdevname-enabled) interface names (e.g.
- commissioning with xenial)
+ MAAS/curtin generate invalid /e/n/i and failed deployment for nodes with
+ long (biosdevname) interface names, which in turn have VLANs
Revision history for this message
Mike Pontillo (mpontillo) wrote :

This was discussed on IRC, and one potential workaround is to set "net.ifnames=0" during commissioning, so that the interfaces get the names assigned by the kernel.

Otherwise, the only solution I can think of is for MAAS to shorten the names to 10 characters post-commissioning, and eliminate any duplicates.

Changed in maas:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Andres Rodriguez (andreserl) wrote :
Changed in maas:
status: Triaged → Invalid
Revision history for this message
Dimiter Naydenov (dimitern) wrote :

Thanks for the link Andres! I've added a comment about how that affects Juju and the bridges we create.

There are ways to to get shorter names - net.ifnames=0 is one option, comissioning with trusty by default also works. As far as Juju is concerned, we can detect such cases and use the MAAS API to rename long interfaces between node acquisition and deployment.

It's a real pity in 2016 the Linux kernel still has such ridiculous limits on network device names.

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.