[Bug 1734908] Re: systemd-rfkill service times out when a new rfkill device is added
Dimitri John Ledkov
launchpad at surgut.co.uk
Tue Mar 20 00:18:34 UTC 2018
urfkill switch autopkgtest testcases of network manager are passing with this new systemd still.
(there are other nm regressions in other test cases however)
** Tags removed: verification-needed verification-needed-artful
** Tags added: verification-done verification-done-artful
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1734908
Title:
systemd-rfkill service times out when a new rfkill device is added
Status in systemd package in Ubuntu:
Fix Released
Status in systemd source package in Artful:
Fix Committed
Bug description:
[Impact]
The following issue was observed while running network-
manager=1.8.4-1ubuntu3 autopkgtest on Artful with
systemd=234-2ubuntu12.1:
-----------------------------------------------------------
Nov 21 17:00:32 autopkgtest systemd[1]: Starting Load/Save RF Kill Switch Status...
Nov 21 17:01:02 autopkgtest systemd[1]: systemd-rfkill.service: Start operation timed out. Terminating.
Nov 21 17:01:02 autopkgtest systemd[1]: Failed to start Load/Save RF Kill Switch Status.
Nov 21 17:01:02 autopkgtest systemd[1]: systemd-rfkill.service: Unit entered failed state.
Nov 21 17:01:02 autopkgtest systemd[1]: systemd-rfkill.service: Failed with result 'timeout'.
-----------------------------------------------------------
This happens after the testcase inserts the fake-rfkill module (a
module shipped with network-manager tests that registers a new fake
device with the rfkill subsystem).
On Artful, it causes the network-manager autopkgtest killswitches-no-
urfkill to fail (see bug 1733321). The testcase reveals that when
running network-manager cli to query the status of a WiFi interface
('nmcli radio wifi') it can report the wrong state of the device after
'rfkill block/unblock' is run to change the device 'Soft blocked'
state. This can affect the state of the device presented to the user.
[Fix]
The issue is fixed by the following systemd upstream patches:
-----------------------------------------------------------
https://github.com/systemd/systemd/commit/8ec1a07998758f6a85f3ea5bf2ed14d87609398f#diff-275947967677827e2b72930d97f1b8ac
commit 8ec1a07998758f6a85f3ea5bf2ed14d87609398f
Author: S. Fan <sfanxiang at gmail.com>
Date: Mon Jul 31 05:10:10 2017 -0500
rfkill: fix erroneous behavior when polling the udev monitor
(#6489)
Comparing udev_device_get_sysname(device) and sysname will always return
true. We need to check the device received from udev monitor instead.
Also, fd_wait_for_event() sometimes never exits. Better set a timeout
here.
-----------------------------------------------------------
-----------------------------------------------------------
https://github.com/systemd/systemd/commit/c7f6ca9379279affa8f22d15fa13063491f86a49#diff-275947967677827e2b72930d97f1b8ac
commit c7f6ca9379279affa8f22d15fa13063491f86a49
Author: Xiang Fan <sfanxiang at gmail.com>
Date: Wed Aug 9 05:51:53 2017 -0500
rfkill: fix typo (#6574)
-----------------------------------------------------------
With the fixes, the output from systemd-rfkill is:
-----------------------------------------------------------
Nov 28 15:27:54 autopkgtest systemd[1]: Starting Load/Save RF Kill Switch Status...
Nov 28 15:27:59 autopkgtest systemd-rfkill[14843]: Timed out waiting for udev monitor.
Nov 28 15:27:59 autopkgtest systemd[1]: Started Load/Save RF Kill Switch Status.
-----------------------------------------------------------
The patches are needed to fix the ADT tests observed with Artful tests on ppc64el architecture:
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-artful/artful/ppc64el/n/network-manager/20171120_100719_28642@/log.gz
[Test Case]
2.1. Download network-manager package source code
$ apt-get source network-manager
2.2. Run killswitches-no-urfkill testcase
$ cd network-manager-1.8.4
$ sudo ./debian/tests/killswitches-no-urfkill
[Regression Potential]
Most of the network-manager and rfkill functionalities that can be
affected by this change are tested by killswitches-no-urfkill
testcase. It covers querying the WiFi device state using nmcli and the
following rfkill commands: list, block and unblock. These have been
verified to be either fixed or not having regressions.
The only rfkill command that is not covered by the testcase is
'event', which listens to rfkill events and display them. I have run
tests manually and verified that it's not affected by these changes.
These are the outputs from the unpatched and patched systemd versions
while running the killswitches-no-urfkill testcase, which adds the
rfkill device, blocks and unbloks it and removes the device (the idx
value is expected to be different):
systemd 234-2ubuntu12.1:
-----------------------------------------------------------------------
$ sudo rfkill event
1513163787.877080: idx 3 type 1 op 0 soft 0 hard 0
1513163818.118695: idx 3 type 1 op 2 soft 1 hard 0
1513163818.222639: idx 3 type 1 op 2 soft 0 hard 0
1513163818.254778: idx 3 type 1 op 1 soft 0 hard 0
-----------------------------------------------------------------------
systemd 234-2ubuntu12.2:
-----------------------------------------------------------------------
$ sudo rfkill event
1513164121.690285: idx 0 type 1 op 0 soft 0 hard 0
1513164151.996227: idx 0 type 1 op 2 soft 1 hard 0
1513164152.114794: idx 0 type 1 op 2 soft 0 hard 0
1513164152.140536: idx 0 type 1 op 1 soft 0 hard 0
-----------------------------------------------------------------------
Regression potential is also minimized by the fact that the fix has
been applied some months ago on upstream github repo and it's being
shipped with systemd on Bionic (systemd=235-3ubuntu2).
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1734908/+subscriptions
More information about the foundations-bugs
mailing list