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.