GNOME Bugzilla – Bug 701342
WiFi periodically disconects and reconnects every few minutes
Last modified: 2017-10-04 15:14:14 UTC
After connecting to the secured wireless (PEAP/MSCHAPv2), the connection is very jerky, with occasional hanging when loading a webpage. then every 5-15 minutes or so, the connection completely drops, and I have to restart it manually or wait a few minutes for it to reconnect itself.
Created attachment 245719 [details] debug log of Network Manager while error occurs
I was scanning the logs and it looks like at the time of the issue its repeatedly roaming between access points. This should be atyptical and might be a result of some heuristic change. I think the roaming is was causing the disruption of connectivity. I plan to pull down the git code and see if i can bisect the problem to narrow down the issue
The frequent roaming is probably caused by low signal levels and not optimal wpa_supplicant decisions on roaming (trying to roam even if current signal is still good). What wpa_supplicant version do you use? Could you get logs out of it? https://live.gnome.org/NetworkManager/Debugging/#wpa_supplicant07 $ nmcli dev wifi list
Created attachment 245907 [details] wpa_supplicant log during disruption This is the wpa_supplicant log during the issue. Its possible that its a configuration error in wpa_supplicant causing constant reauth, and thats probably the likely cause, but I think it reflects some change in networkmanager because i dont get the issue with older versions, and havent changed the wpa_supplicant version (its v1.0 currently). So there was probably some change in how NetworkManager configures wpa_supplicant
Created attachment 246030 [details] [review] add logic to the configure.ac to check for wpa_supplicant >= 1.1 Using wpa_supplicant 1.1 the issue goes away. Since wpa_supplicant 1.1 is listed as current stable, i see no reason not to require it as a dependency explicitly for now. In order to prevent issues on systems that haven't updated from 1.0 yet.
The problem is a bug in wpa_supplicant < 1.1, as you've discovered: 1370249525.914596: RSN: Flush PMKSA cache entry for 00:1f:45:96:eb:28 1370249525.914600: nl80211: Delete PMKID for 00:1f:45:96:eb:28 1370249525.914634: wlan0: RSN: removed current PMKSA entry 1370249525.914638: wpa_driver_nl80211_deauthenticate(addr=00:1f:45:96:eb:28 reason_code=1) the supplicant is mistakenly removing the cache entry for the currently associated access point. While the patch is well-intentioned, it also adds a dependency on wpa_supplicant during the build process, which isn't something that is required to either build or run NetworkManager. So for that reason, the patch should not error if the supplicant cannot be found at configure time. Second, the patch should at least mention *why* wpa_supplicant 1.1 or higher is required, with something like "wpa_supplicant 1.1 or higher is required due to bugs in older versions of the supplicant".
Since wpa_supplicant 1.1 is quite old, I think we can reasonably expect that users have a higher version now. Therefore I'm closing this bug.