The issue seems to be related somehow to systemd's systemd-rfkill.service. When fake-rfkill is loaded, the following message are logged on syslog:
Nov 21 17:00:32 autopkgtest NetworkManager[1044]: <info> [1511283632.4948] rfkill13: found WiFi radio killswitch (at /sys/devices/virtual/rfkill/rfkill13) (driver (unknown))
Nov 21 17:00:32 autopkgtest kernel: [ 2970.858563] query test rfkill
Nov 21 17:00:32 autopkgtest kernel: [ 2970.858566] set test rfkill (active)
Nov 21 17:00:32 autopkgtest systemd[1]: Starting Load/Save RF Kill Switch Status...
Nov 21 17:00:38 autopkgtest kernel: [ 2976.544106] poll test rfkill
Nov 21 17:00:43 autopkgtest kernel: [ 2981.407971] poll test rfkill
Nov 21 17:00:48 autopkgtest kernel: [ 2986.527817] poll test rfkill
Nov 21 17:00:53 autopkgtest kernel: [ 2991.391678] poll test rfkill
Nov 21 17:00:58 autopkgtest kernel: [ 2996.511538] poll test rfkill
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'.
Nov 21 17:01:03 autopkgtest kernel: [ 3001.375390] poll test rfkill
Nov 21 17:01:08 autopkgtest kernel: [ 3006.495239] poll test rfkill
Nov 21 17:01:12 autopkgtest kernel: [ 3011.136564] query test rfkill
Nov 21 17:01:12 autopkgtest kernel: [ 3011.136566] set test rfkill (blocked)
Nov 21 17:01:12 autopkgtest systemd[1]: Starting Load/Save RF Kill Switch Status...
Nov 21 17:01:12 autopkgtest NetworkManager[1044]: <info> [1511283672.8246] manager: rfkill: WiFi now disabled by radio killswitch
Nov 21 17:01:12 autopkgtest systemd[1]: Started Load/Save RF Kill Switch Status.
And the call to 'mcli radio wifi' intermittently fails to report that the device is disabled after the call to 'rfkill block $fake_id'.
Stopping systemd-rfkill.socket and systemd-rfkill.service units seems to work around the issue since I can't reproduce the issue when they are stopped.
As an additional note, I cannot reproduce the issue on the ppc64el host, only on the qemu/kvm guest.
The issue seems to be related somehow to systemd's systemd- rfkill. service. When fake-rfkill is loaded, the following message are logged on syslog:
Nov 21 17:00:32 autopkgtest NetworkManager[ 1044]: <info> [1511283632.4948] rfkill13: found WiFi radio killswitch (at /sys/devices/ virtual/ rfkill/ rfkill13) (driver (unknown)) rfkill. service: Start operation timed out. Terminating. rfkill. service: Unit entered failed state. rfkill. service: Failed with result 'timeout'. 1044]: <info> [1511283672.8246] manager: rfkill: WiFi now disabled by radio killswitch
Nov 21 17:00:32 autopkgtest kernel: [ 2970.858563] query test rfkill
Nov 21 17:00:32 autopkgtest kernel: [ 2970.858566] set test rfkill (active)
Nov 21 17:00:32 autopkgtest systemd[1]: Starting Load/Save RF Kill Switch Status...
Nov 21 17:00:38 autopkgtest kernel: [ 2976.544106] poll test rfkill
Nov 21 17:00:43 autopkgtest kernel: [ 2981.407971] poll test rfkill
Nov 21 17:00:48 autopkgtest kernel: [ 2986.527817] poll test rfkill
Nov 21 17:00:53 autopkgtest kernel: [ 2991.391678] poll test rfkill
Nov 21 17:00:58 autopkgtest kernel: [ 2996.511538] poll test rfkill
Nov 21 17:01:02 autopkgtest systemd[1]: systemd-
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-
Nov 21 17:01:02 autopkgtest systemd[1]: systemd-
Nov 21 17:01:03 autopkgtest kernel: [ 3001.375390] poll test rfkill
Nov 21 17:01:08 autopkgtest kernel: [ 3006.495239] poll test rfkill
Nov 21 17:01:12 autopkgtest kernel: [ 3011.136564] query test rfkill
Nov 21 17:01:12 autopkgtest kernel: [ 3011.136566] set test rfkill (blocked)
Nov 21 17:01:12 autopkgtest systemd[1]: Starting Load/Save RF Kill Switch Status...
Nov 21 17:01:12 autopkgtest NetworkManager[
Nov 21 17:01:12 autopkgtest systemd[1]: Started Load/Save RF Kill Switch Status.
And the call to 'mcli radio wifi' intermittently fails to report that the device is disabled after the call to 'rfkill block $fake_id'.
Stopping systemd- rfkill. socket and systemd- rfkill. service units seems to work around the issue since I can't reproduce the issue when they are stopped.
As an additional note, I cannot reproduce the issue on the ppc64el host, only on the qemu/kvm guest.