0.98 introduced more strict parsing of bonding mode, causing failures at boot for existing systems

Bug #1877643 reported by Steve Langasek
This bug affects 1 person
Affects Status Importance Assigned to Milestone (Ubuntu)
Fix Released
Lukas Märdian

Bug Description

As noted in , 0.98 has introduced stricter validation rules for netplan yaml compared to previous versions. This causes previously accepted netplan yaml to fail to validate and therefore fail to apply, regressing users' networks after SRU upgrade.

=== SRU ===
This release contains one regression bug-fix for the bionic stable release and we would like to make sure all of our supported customers have access to these improvements.

 * Do not reject invalid bonding mode config (LP: #1877643)
   - Print a warning instead on bionic
   - Only affects the bionic series

See the changelog entry below for a full list of changes and bugs.

[Test Case]
The following development and SRU process was followed:

Netplan contains an extensive integration test suite that is ran using
the SRU package for each releases. This test suite's results are available here:

A successful run is required before the proposed netplan package
can be let into -updates.

The netplan team will be in charge of attaching the artifacts and console
output of the appropriate run to the bug. Netplan team members will not
mark ‘verification-done’ until this has happened.

[Regression Potential]
In order to mitigate the regression potential, the results of the
aforementioned integration tests are attached to this bug.

Special attention is given to tests/generator/ -> test_bond_invalid_mode (unit test at compile time), which was adopted to *not* reject an invalid bond config, but print a "WARNING: unknown bond mode '%s'" instead.

It may be appropriate from an upstream POV to make the validation of input more strict over time, but it is never acceptable for an SRU to regress the interpretation of user config in this manner and cause config to fail to apply. This PR either needs to be reverted for bionic, or it needs to be modified to treat unknown modes as a warning instead of a failure.

[PATCH] Fix invalid bond mode SRU regression (LP: #1877643)

Related branches

Steve Langasek (vorlon)
Changed in (Ubuntu Bionic):
status: New → Triaged
importance: Undecided → High
tags: added: regression-update
Revision history for this message
br (bcns01) wrote :

Would love to see it become a warning for bionic rather than revert.

The previous (lack of) validation allowed invalid configs to silently be accepted, leading to unexpected behaviour when processed by the backend (e.g. networkd).

In our case, we had machines lose connectivity on reboot after a long period of up-time because we had listed the bonding mode number (4) instead of the valid name (802.3ad). IIRC, at the time, we eventually found that this made the bonding mode fall back to round-robin.

tags: added: id-5eb5a516d9abc944cc31aaed
Lukas Märdian (slyon)
Changed in (Ubuntu Bionic):
status: Triaged → In Progress
assignee: nobody → Lukas Märdian (slyon)
Revision history for this message
Lukas Märdian (slyon) wrote :
Changed in (Ubuntu):
status: New → Invalid
Lukas Märdian (slyon)
tags: added: upgrade-software-version verification-needed verification-needed-bionic
Lukas Märdian (slyon)
description: updated
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Steve, or anyone else affected,

Accepted into bionic-proposed. The package will build now and be available at in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in (Ubuntu Bionic):
status: In Progress → Fix Committed
Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (

All autopkgtests for the newly accepted (0.99-0ubuntu3~18.04.2) for bionic have finished running.
The following regressions have been reported in tests triggered by the package: (amd64)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].


Thank you!

Revision history for this message
Lukas Märdian (slyon) wrote :

Hi Brian,

for Bionic SRU verification, I checked the logs of the automatic integration test-suite (autopkgtests) of (0.99-0ubuntu3~18.04.2) and made sure all tests finished successfully.

Vorlon re-trigger one autopkgtest for bionic/amd64, due to a timing issue (flaky test); it ran successfully the 2nd time and all autopkgtests for Bionic are now green. All bionic test logs are attached to the description of this bug report.

Additionally, I executed the following manual test inside a Bionic multipass instance, which shows that netplan's 'generate' is not rejecting the config anymore, but printing a warning instead!

All looking good to me!

=== TEST SETUP ===
ubuntu@b:~$ cat test.yaml
  version: 2
        name: eth0
      interfaces: [ens4]
        mode: lacp
      dhcp4: true

=== BEFORE ===
ubuntu@b:~$ dpkg -l | grep netplan
ii libnetplan0:amd64 0.99-0ubuntu3~18.04.1
ii 0.99-0ubuntu3~18.04.1

ubuntu@b:~$ sudo /lib/netplan/generate test.yaml
test.yaml:11:15: Error in network definition: unknown bond mode 'lacp'
        mode: lacp
ubuntu@b:~$ echo $?

=== AFTER ===
ubuntu@b:~$ dpkg -l | grep netplan
ii libnetplan0:amd64 0.99-0ubuntu3~18.04.2
ii 0.99-0ubuntu3~18.04.2

ubuntu@b:~$ sudo /lib/netplan/generate test.yaml
WARNING: unknown bond mode 'lacp'. Your config needs to be updated to work with future series of Ubuntu.
ubuntu@b:~$ echo $?

description: updated
tags: added: verification-done verification-done-bionic
removed: verification-needed verification-needed-bionic
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package - 0.99-0ubuntu3~18.04.2

--------------- (0.99-0ubuntu3~18.04.2) bionic; urgency=medium

  * Add d/p/Fix-invalid-bond-mode-SRU-regression-LP-1877643.patch (LP: #1877643)
    - Fix regression in strict bond mode checking, introduced in netplan v0.98

 -- Lukas Märdian <email address hidden> Mon, 11 May 2020 10:00:09 +0200

Changed in (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
Brian Murray (brian-murray) wrote : Update Released

The verification of the Stable Release Update for has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers