Lockup in wpa supplicant

michaelm michael.melkonian at netcommwireless.com
Thu May 29 20:02:28 EDT 2014


Hi everyone

First post on this list from me :)

I am using wpa_supplicant 2.1 with linux wireless driver

The problem I am having is that after a while, wpa_supplicant hangs in the function "radio_start_next_work" first giving the message:
"Delay radio work start until externally triggered scan completes"

Here is a full log:
wlan_sta0: Event AUTH_TIMED_OUT (14) received
wlan_sta0: SME: Authentication timed out
wlan_sta0: Radio work 'sme-connect'@0x7b980 done in 0.051100 seconds
BSSID 00:60:64:88:0e:c0 blacklist count incremented to 2
wlan_sta0: Blacklist count 2 --> request scan in 500 ms
wlan_sta0: Setting scan request: 0.500000 sec
wlan_sta0: State: AUTHENTICATING -> DISCONNECTED
nl80211: Set wlan_sta0 operstate 0->0 (DORMANT)
netlink: Operstate: ifindex=9 linkmode=-1 (no change), operstate=5 (IF_OPER_DORMANT)
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
EAPOL: External notification - EAP success=0
Delay radio work start until externally triggered scan completes
wlan_sta0: State: DISCONNECTED -> SCANNING
Scan SSID - hexdump_ascii(len=6):
      6d 6d 74 65 73 74                                 mmtest
wlan_sta0: Starting AP scan for wildcard SSID
wlan_sta0: Optimize scan based on conf->freq_list
wlan_sta0: Add radio work 'scan'@0x86c28

Nothing ever happens after the above lines (wpa_supplicant is locked up), unless I trigger a scan using "iw"

Without full debugging, it seems that wpa_s->external_scan_running flag is set forever and hence wpa_supplicant never does any radio work.

I cannot really explain why there should be an externally triggered scan (as it would be the only condition to set the "external_scan_running" flag).
I thought this may be to do with the fact that hostapd is running at the same time (as we use both STA and AP functionality simultaneously) but
this occurs even with AP function disabled and hostapd not running.

If I remove the return, e.g.:
	if (wpa_s && wpa_s->external_scan_running) {
	    /*
             ** log message, but do not return and proceed with radio work
             */
		wpa_printf(MSG_DEBUG, "<<<<Delay radio work start until externally triggered scan completes>>>>");
		/* return; */
	}

Everything seems to work fine. Furthermore, it doesn't seem that interrupting external scan if supplicant needs to do its own is such a bad idea.

Any ideas would be much appreciated

Regards,

Michael


______________________________________________________________________
This communication contains information which may be confidential or privileged. The information is intended solely for the use of the individual or entity named above.  If you are not the intended recipient, be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited.  If you have received this communication in error, please notify me by telephone immediately.
______________________________________________________________________


More information about the HostAP mailing list