[Bug 1967084] Re: netplan dbus returns "false" in io.netplan.Netplan.Config.Set with networkd
Lukas Märdian
1967084 at bugs.launchpad.net
Wed Nov 29 15:10:33 UTC 2023
Fixed in v0.105 & backported to Focal.
** Changed in: netplan
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to netplan.io in Ubuntu.
Matching subscriptions: foundations-bugs
https://bugs.launchpad.net/bugs/1967084
Title:
netplan dbus returns "false" in io.netplan.Netplan.Config.Set with
networkd
Status in netplan:
Fix Released
Status in netplan.io package in Ubuntu:
Fix Released
Status in netplan.io source package in Focal:
Fix Released
Bug description:
[Impact]
* netplan-dbus can time-out and return FALSE after 5 sec (irrespective of the given timeout parameter) on calling the io.netplan.Netplan.Config.Try DBus method
* This happens if a network device is set up, which never finishes configuring in systemd-networkd (e.g. an empty bridge, using DHCP).
[Test Plan]
$ cat ./repro.sh
set -ev
P=$(dbus-send --type=method_call --system --print-reply --dest=io.netplan.Netplan /io/netplan/Netplan io.netplan.Netplan.Config | grep "object path" | cut -d'"' -f2)
echo $P
dbus-send --type=method_call --system --print-reply --dest=io.netplan.Netplan $P io.netplan.Netplan.Config.Set string:bridges.br54.dhcp4=true string:90-foo
dbus-send --type=method_call --system --print-reply --dest=io.netplan.Netplan $P io.netplan.Netplan.Config.Try uint32:300
$ chmod +x repro.sh
$ time ./repro.sh
P=$(dbus-send --type=method_call --system --print-reply --dest=io.netplan.Netplan /io/netplan/Netplan io.netplan.Netplan.Config | grep "object path" | cut -d'"' -f2)
echo $P
/io/netplan/Netplan/config/K0PEL1
dbus-send --type=method_call --system --print-reply --dest=io.netplan.Netplan $P io.netplan.Netplan.Config.Set string:bridges.br54.dhcp4=true string:90-foo
method return time=1651225120.656093 sender=:1.48 -> destination=:1.49 serial=6 reply_serial=2
boolean true
dbus-send --type=method_call --system --print-reply --dest=io.netplan.Netplan $P io.netplan.Netplan.Config.Try uint32:300
method return time=1651225126.820211 sender=:1.48 -> destination=:1.50 serial=8 reply_serial=2
boolean true
real 0m6.352s
user 0m0.019s
sys 0m0.020s
=> Make sure the final io.netplan.Netplan.Config.Try() method call
returns TRUE.
[Where problems could occur]
This change touches netplan's dbus daemon (netplan-dbus), so if anything goes wrong problems could occur interacting with the io.netplan.Netplan DBus interface, but should not affect the netplan generator at a system level.
[Other Info]
* The issue has already been fixed for Core20 in netplan.io 0.104-0ubuntu2~20.04.1+core1 via https://launchpad.net/~canonical-foundations/+archive/ubuntu/ubuntu-image – So no need to rush this as an SRU for Focal
* The fix is already staged for Focal SRU at: https://git.launchpad.net/~ubuntu-core-dev/netplan/+git/ubuntu/commit/?h=ubuntu/focal&id=0fa3404c9627d69adf647db9911cf36cdf9b90b2
=== Original description ===
As part of our snapd core integration testing we run the spread test
for netplan on a UC20 PI device.
On this device our test fails with:
"""
2022-03-25 14:33:00 Error executing external:ubuntu-core-20-arm-32:tests/core/netplan-cfg (external:ubuntu-core-20-arm-32) :
-----
+ echo 'Getting version works'
Getting version works
+ snap get system system.network.netplan.network.version
+ MATCH '^2$'
+ echo 'Getting the full document works and it is valid json'
Getting the full document works and it is valid json
+ jq .
+ snap get -d system system.network.netplan
{
"system.network.netplan": {
"network": {
"ethernets": {
"eth0": {
"dhcp4": true,
"match": {
"macaddress": "b8:27:eb:41:42:43"
},
"set-name": "eth0"
}
},
"version": 2
}
}
}
+ echo 'Check that setting adding a br54 interface via netplan works'
Check that setting adding a br54 interface via netplan works
+ snap set system system.network.netplan.network.bridges.br54.dhcp4=true
error: cannot perform the following tasks:
- Run configure hook of "core" snap (run hook "configure": cannot try netplan config: no specific reason returned from netplan)
-----
"""
This error means that snapd called io.netplan.Netplan.Config.Set and
got a "false" without an error from that call (c.f.
https://github.com/snapcore/snapd/blob/master/overlord/configstate/configcore/netplan.go#L218)
[edit: now this also fails in GCE testing on amd64 and this looks like
a regression as this used to work].
To manage notifications about this bug go to:
https://bugs.launchpad.net/netplan/+bug/1967084/+subscriptions
More information about the foundations-bugs
mailing list