Re: [arch-general] [wpa_actiond 1.4] slow disconnects
Am 05.03.2013 16:44, schrieb Pali Rohár:
Hello,
On Tuesday 05 March 2013 10:23:24 Thomas Bächler wrote:
Am 04.03.2013 21:26, schrieb Leonid Isaev:
Hi,
With testing/wpa_actiond-1.4 I am having a minor problem when shutting down net-auto-wireless.service: 'systemctl stop net-auto-wireless.service' pauses for ~10sec before finally disconnecting. Of course, this also occurs on normal system poweroff (which is usually ~5sec). The wifi network is WPA "enterprise" (important entries in wpa_supplicant.conf: key_mgmt=WPA-EAP; eap=PEAP; phase1="peaplabel=0"; phase2="auth=MSCHAPV2"), and piece of
daemon.log after the above delay has elapsed: I've seen this too, but I didn't determine yet that is was wpa_actiond's fault. There are several issues here:
1) I am unsure what exactly terminates wpa_actiond.
Before my patches wpa_actiond could be terminated only by KILL/TERM signals or correct "terminate" event from wpa_supplicant. wpa_supplicant sending terminate event only if wpa_supplcant is stopped regulary (when wpa_supplicant is killed by KILL no terminate event is sent!). With my patches wpa_actiond is also terminated when wpa_supplicant is KILLed.
2) net-auto-wireless.service is Type=forking, but has no proper MainPID detected, so systemd doesn't know what exactly to kill.
This change however seems to be related to Pali's changed, so I'm CC'ing him to see if he knows what this might be about.
You can always stop wpa_actiond with KILL or TERM signals. I did not removed any code which handling stopping wpa_actiond. I only added another check if wpa_actiond should exit.
So my patches should not change behaviour of stopping wpa_actiond. Problem is maybe in blackbox which starting and stoppping wpa_actiond. I'm not using that systemd and this is another reason against it. Not easy to understand and debug this problem.
I tested my patches on my system without systemd and wpa_actiond working without problem. Really I cannot help you with blackbox which I not using...
This may even be related to the way netcfg stops wpa_actiond (it doesn't - it only stops wpa_supplicant). One can probably debug this easily by making wpa_actiond more verbose.
On Wed, 06 Mar 2013 19:19:16 +0100 Thomas Bächler <thomas@archlinux.org> wrote:
Am 05.03.2013 16:44, schrieb Pali Rohár:
Hello,
On Tuesday 05 March 2013 10:23:24 Thomas Bächler wrote:
Am 04.03.2013 21:26, schrieb Leonid Isaev:
Hi,
With testing/wpa_actiond-1.4 I am having a minor problem when shutting down net-auto-wireless.service: 'systemctl stop net-auto-wireless.service' pauses for ~10sec before finally disconnecting. Of course, this also occurs on normal system poweroff (which is usually ~5sec). The wifi network is WPA "enterprise" (important entries in wpa_supplicant.conf: key_mgmt=WPA-EAP; eap=PEAP; phase1="peaplabel=0"; phase2="auth=MSCHAPV2"), and piece of
daemon.log after the above delay has elapsed: I've seen this too, but I didn't determine yet that is was wpa_actiond's fault. There are several issues here:
1) I am unsure what exactly terminates wpa_actiond.
Before my patches wpa_actiond could be terminated only by KILL/TERM signals or correct "terminate" event from wpa_supplicant. wpa_supplicant sending terminate event only if wpa_supplcant is stopped regulary (when wpa_supplicant is killed by KILL no terminate event is sent!). With my patches wpa_actiond is also terminated when wpa_supplicant is KILLed.
2) net-auto-wireless.service is Type=forking, but has no proper MainPID detected, so systemd doesn't know what exactly to kill.
This change however seems to be related to Pali's changed, so I'm CC'ing him to see if he knows what this might be about.
You can always stop wpa_actiond with KILL or TERM signals. I did not removed any code which handling stopping wpa_actiond. I only added another check if wpa_actiond should exit.
So my patches should not change behaviour of stopping wpa_actiond. Problem is maybe in blackbox which starting and stoppping wpa_actiond. I'm not using that systemd and this is another reason against it. Not easy to understand and debug this problem.
I tested my patches on my system without systemd and wpa_actiond working without problem. Really I cannot help you with blackbox which I not using...
This may even be related to the way netcfg stops wpa_actiond (it doesn't - it only stops wpa_supplicant). One can probably debug this easily by making wpa_actiond more verbose.
Turns out you were right. What probably happens is that wpa_supplicant dies, ctrl sockets in /run/wpa_supplicant disappear and wpa_actiond dies after some timeout (our network has a grid of APs with varying signal strength/capabilities, so delays slightly depended on the AP). If wpa_ctrl part in wpa_actiond is copied from wpa_supplicant/hostapd, this must be a new thing in 2.0. For me, sending a -term signal to wpa_actiond in netctl-auto stop (kill -term $(<$PIDFILE)) makes stops/restarts almost instantaneous. In any case, one should probably stop wpa_actiond before wpa_supplicant regardless of any possible issues. I'll send an email regarding netctl to arch-projects, but this should also be fixed in netcfg... Thanks, -- Leonid Isaev GnuPG key: 0x164B5A6D Fingerprint: C0DF 20D0 C075 C3F1 E1BE 775A A7AE F6CB 164B 5A6D
participants (2)
-
Leonid Isaev
-
Thomas Bächler