I have extended the bug description to include the additional
information requested by @racb.
** Description changed:
[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).
-
+ 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 <[email protected]>
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 <[email protected]>
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]
- Regression potential is minimal, since the fix has been applied some
- months ago on upstream github repo and it's being shipped with systemd
- on Bionic (systemd=235-3ubuntu2)
+ 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).
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1734908
Title:
systemd-rfkill service times out when a new rfkill device is added
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1734908/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs