diff mbox series

hostapd crash

Message ID bfd3b794-9b85-469a-b218-58a66f435e1b@gmail.com
State Not Applicable
Delegated to: Petr Štetiar
Headers show
Series hostapd crash | expand

Commit Message

e9hack Jan. 13, 2024, 10:28 a.m. UTC
Hi,

I did add one more AP to my wifi config for testing. This results in hostapd not starting for this device:

Thu Jan 11 13:59:12 2024 daemon.notice hostapd: Exception in ubus function: left-hand side expression is null In __iface_pending_next(), file /usr/share/hostap/hostapd.uc, line 165, byte 73:   called from function iface_pending_next (/usr/share/hostap/hostapd.uc:181:73)   called from function iface_pending_init (/usr/share/hostap/hostapd.uc:222:15)   called from function iface_restart (/usr/share/hostap/hostapd.uc:249:35)   called from function iface_set_config (/usr/share/hostap/hostapd.uc:620:52)   called from function [anonymous function] (/usr/share/hostap/hostapd.uc:827:32)   called from anonymous function (/usr/share/hostap/hostapd.uc:710:22)   `            hostapd.printf(`hostapd.add_iface failed for phy ${phy} ifname=${bss.ifname}`);`   Near here -----------------------------------------------------------------------^
Thu Jan 11 13:59:12 2024 daemon.notice netifd: radio1 (405): Command failed: ubus call hostapd config_set { "phy": "phy1", "config":"/var/run/hostapd-phy1.conf", "prev_config": "/var/run/hostapd-phy1.conf.prev"} (Unknown error)

My hostapd.uc is modified. The affected line number does have an offset by 1 related to the original file:



The error doesn't appear when I remove a AP. It doesn't matter which one I remove.

Is there somewhere a buffer to small?

Regards,
Hartmut

Comments

Felix Fietkau Jan. 13, 2024, 3:15 p.m. UTC | #1
Hi,

On 13.01.24 11:28, e9hack wrote:
> Hi,
> 
> I did add one more AP to my wifi config for testing. This results in hostapd not starting for this device:
> 
> Thu Jan 11 13:59:12 2024 daemon.notice hostapd: Exception in ubus function: left-hand side expression is null In __iface_pending_next(), file /usr/share/hostap/hostapd.uc, line 165, byte 73:   called from function iface_pending_next (/usr/share/hostap/hostapd.uc:181:73)   called from function iface_pending_init (/usr/share/hostap/hostapd.uc:222:15)   called from function iface_restart (/usr/share/hostap/hostapd.uc:249:35)   called from function iface_set_config (/usr/share/hostap/hostapd.uc:620:52)   called from function [anonymous function] (/usr/share/hostap/hostapd.uc:827:32)   called from anonymous function (/usr/share/hostap/hostapd.uc:710:22)   `            hostapd.printf(`hostapd.add_iface failed for phy ${phy} ifname=${bss.ifname}`);`   Near here -----------------------------------------------------------------------^
> Thu Jan 11 13:59:12 2024 daemon.notice netifd: radio1 (405): Command failed: ubus call hostapd config_set { "phy": "phy1", "config":"/var/run/hostapd-phy1.conf", "prev_config": "/var/run/hostapd-phy1.conf.prev"} (Unknown error)
> 
> The error doesn't appear when I remove a AP. It doesn't matter which one I remove.
> 
> Is there somewhere a buffer to small?

Please try the latest version, it should work now. Sorry for the noise.

- Felix
Janusz Dziedzic Jan. 13, 2024, 3:21 p.m. UTC | #2
sob., 13 sty 2024 o 11:37 e9hack <e9hack@gmail.com> napisał(a):
>
> Hi,
>
> I did add one more AP to my wifi config for testing. This results in hostapd not starting for this device:
>
> Thu Jan 11 13:59:12 2024 daemon.notice hostapd: Exception in ubus function: left-hand side expression is null In __iface_pending_next(), file /usr/share/hostap/hostapd.uc, line 165, byte 73:   called from function iface_pending_next (/usr/share/hostap/hostapd.uc:181:73)   called from function iface_pending_init (/usr/share/hostap/hostapd.uc:222:15)   called from function iface_restart (/usr/share/hostap/hostapd.uc:249:35)   called from function iface_set_config (/usr/share/hostap/hostapd.uc:620:52)   called from function [anonymous function] (/usr/share/hostap/hostapd.uc:827:32)   called from anonymous function (/usr/share/hostap/hostapd.uc:710:22)   `            hostapd.printf(`hostapd.add_iface failed for phy ${phy} ifname=${bss.ifname}`);`   Near here -----------------------------------------------------------------------^
> Thu Jan 11 13:59:12 2024 daemon.notice netifd: radio1 (405): Command failed: ubus call hostapd config_set { "phy": "phy1", "config":"/var/run/hostapd-phy1.conf", "prev_config": "/var/run/hostapd-phy1.conf.prev"} (Unknown error)
>
> My hostapd.uc is modified. The affected line number does have an offset by 1 related to the original file:
>
> diff --git a/package/network/services/hostapd/files/hostapd.uc b/package/network/services/hostapd/files/hostapd.uc
> index 0c89cd71cc..66e4e2353e 100644
> --- a/package/network/services/hostapd/files/hostapd.uc
> +++ b/package/network/services/hostapd/files/hostapd.uc
> @@ -20,6 +20,7 @@ hostapd.data.file_fields = {
>         private_key2: true,
>         dh_file: true,
>         eap_sim_db: true,
> +       crl_file: true,
>   };
>
>   function iface_remove(cfg)
>
>
> The error doesn't appear when I remove a AP. It doesn't matter which one I remove.
>
> Is there somewhere a buffer to small?
>

I don't see it on 23.05.2 and banana pi r3:

root@bpi-r3-os-0014555f4dd7:~# iw dev
phy#1
Interface wlan1-1
ifindex 17
wdev 0x100000003
addr 06:14:55:5f:4d:d9
ssid MAP-0014555F4DD7-BH-5GHz
type AP
channel 36 (5180 MHz), width: 80 MHz, center1: 5210 MHz
txpower 23.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
Interface wlan1
ifindex 14
wdev 0x100000002
addr 04:14:55:5f:4d:d9
ssid OpenWrt-0014555F4DD7
type AP
channel 36 (5180 MHz), width: 80 MHz, center1: 5210 MHz
txpower 23.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 20 0 0 0 0 1320 20
phy#0
Interface wlan0-1.sta1
ifindex 18
wdev 0x4
addr 02:14:55:5f:4d:d9
type AP/VLAN
channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
txpower 20.00 dBm
4addr: on
Interface wlan0-1
ifindex 16
wdev 0x3
addr 02:14:55:5f:4d:d9
ssid MAP-0014555F4DD7-BH-2.4GHz
type AP
channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
txpower 20.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
Interface wlan0
ifindex 15
wdev 0x2
addr 00:14:55:5f:4d:d9
ssid OpenWrt-0014555F4DD7
type AP
channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz
txpower 20.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 154 0 0 0 5 11892 154
root@bpi-r3-os-0014555f4dd7:~# ubus list |grep hostapd
hostapd
hostapd.wlan0
hostapd.wlan0-1
hostapd.wlan1
hostapd.wlan1-1
root@bpi-r3-os-0014555f4dd7:~#

BR
Janusz
e9hack Jan. 13, 2024, 3:32 p.m. UTC | #3
Thanks, this does fix the exception. Now I see the reale error:

Sat Jan 13 15:52:30 2024 daemon.err hostapd: Could not set interface phy1-ap8 flags (UP): Resource busy
Sat Jan 13 15:52:31 2024 daemon.err hostapd: Failed to add BSS (BSSID=xx:xx:xx:xx:xx:xx)
Sat Jan 13 15:52:31 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap7 from bridge br-aaa: No such device
Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap6 from bridge br-aaa: No such device
Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap5 from bridge br-bbb: No such device
Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap4 from bridge br-ccc: No such device
Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap3 from bridge br-ddd: No such device
Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap2 from bridge br-eee: No such device
Sat Jan 13 15:52:34 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap1 from bridge br-aaa: No such device
Sat Jan 13 15:52:34 2024 daemon.err hostapd: Interface initialization failed

Is there a limition of AP's per device?

Regards,
Hartmut

Am 13.01.2024 um 16:15 schrieb Felix Fietkau:
> Hi,
> 
> On 13.01.24 11:28, e9hack wrote:
>> Hi,
>>
>> I did add one more AP to my wifi config for testing. This results in hostapd not starting for this device:
>>
>> Thu Jan 11 13:59:12 2024 daemon.notice hostapd: Exception in ubus function: left-hand side expression is null In __iface_pending_next(), file /usr/share/hostap/hostapd.uc, line 165, byte 73:   called from function iface_pending_next (/usr/share/hostap/hostapd.uc:181:73)   called from function iface_pending_init (/usr/share/hostap/hostapd.uc:222:15)   called from function iface_restart (/usr/share/hostap/hostapd.uc:249:35)   called from function iface_set_config (/usr/share/hostap/hostapd.uc:620:52)   called from function [anonymous function] (/usr/share/hostap/hostapd.uc:827:32)   called from anonymous function (/usr/share/hostap/hostapd.uc:710:22)   `            hostapd.printf(`hostapd.add_iface failed for phy ${phy} ifname=${bss.ifname}`);`   Near here -----------------------------------------------------------------------^
>> Thu Jan 11 13:59:12 2024 daemon.notice netifd: radio1 (405): Command failed: ubus call hostapd config_set { "phy": "phy1", "config":"/var/run/hostapd-phy1.conf", "prev_config": "/var/run/hostapd-phy1.conf.prev"} (Unknown error)
>>
>> The error doesn't appear when I remove a AP. It doesn't matter which one I remove.
>>
>> Is there somewhere a buffer to small?
> 
> Please try the latest version, it should work now. Sorry for the noise.
> 
> - Felix
Felix Fietkau Jan. 13, 2024, 3:47 p.m. UTC | #4
On 13.01.24 16:32, e9hack wrote:
> Thanks, this does fix the exception. Now I see the reale error:
> 
> Sat Jan 13 15:52:30 2024 daemon.err hostapd: Could not set interface phy1-ap8 flags (UP): Resource busy
> Sat Jan 13 15:52:31 2024 daemon.err hostapd: Failed to add BSS (BSSID=xx:xx:xx:xx:xx:xx)
> Sat Jan 13 15:52:31 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap7 from bridge br-aaa: No such device
> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap6 from bridge br-aaa: No such device
> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap5 from bridge br-bbb: No such device
> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap4 from bridge br-ccc: No such device
> Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap3 from bridge br-ddd: No such device
> Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap2 from bridge br-eee: No such device
> Sat Jan 13 15:52:34 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap1 from bridge br-aaa: No such device
> Sat Jan 13 15:52:34 2024 daemon.err hostapd: Interface initialization failed
> 
> Is there a limition of AP's per device?

Yes. The limit is hardware/driver specific. What chipset are you using?

- Felix
e9hack Jan. 13, 2024, 3:58 p.m. UTC | #5
Am 13.01.2024 um 16:47 schrieb Felix Fietkau:
> On 13.01.24 16:32, e9hack wrote:
>> Thanks, this does fix the exception. Now I see the reale error:
>>
>> Sat Jan 13 15:52:30 2024 daemon.err hostapd: Could not set interface phy1-ap8 flags (UP): Resource busy
>> Sat Jan 13 15:52:31 2024 daemon.err hostapd: Failed to add BSS (BSSID=xx:xx:xx:xx:xx:xx)
>> Sat Jan 13 15:52:31 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap7 from bridge br-aaa: No such device
>> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap6 from bridge br-aaa: No such device
>> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap5 from bridge br-bbb: No such device
>> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap4 from bridge br-ccc: No such device
>> Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap3 from bridge br-ddd: No such device
>> Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap2 from bridge br-eee: No such device
>> Sat Jan 13 15:52:34 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap1 from bridge br-aaa: No such device
>> Sat Jan 13 15:52:34 2024 daemon.err hostapd: Interface initialization failed
>>
>> Is there a limition of AP's per device?
> 
> Yes. The limit is hardware/driver specific. What chipset are you using?
> 

It is a TP-LINK Archer C7. 2.4G wifi is ath9k. I didn't see this issue with an Asus RT-AX53U based on mt7621.

Regards,
Hartmut
Felix Fietkau Jan. 13, 2024, 8:53 p.m. UTC | #6
On 13.01.24 16:58, e9hack wrote:
> Am 13.01.2024 um 16:47 schrieb Felix Fietkau:
>> On 13.01.24 16:32, e9hack wrote:
>>> Thanks, this does fix the exception. Now I see the reale error:
>>>
>>> Sat Jan 13 15:52:30 2024 daemon.err hostapd: Could not set interface phy1-ap8 flags (UP): Resource busy
>>> Sat Jan 13 15:52:31 2024 daemon.err hostapd: Failed to add BSS (BSSID=xx:xx:xx:xx:xx:xx)
>>> Sat Jan 13 15:52:31 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap7 from bridge br-aaa: No such device
>>> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap6 from bridge br-aaa: No such device
>>> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap5 from bridge br-bbb: No such device
>>> Sat Jan 13 15:52:32 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap4 from bridge br-ccc: No such device
>>> Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap3 from bridge br-ddd: No such device
>>> Sat Jan 13 15:52:33 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap2 from bridge br-eee: No such device
>>> Sat Jan 13 15:52:34 2024 daemon.notice hostapd: nl80211: Failed to remove interface phy1-ap1 from bridge br-aaa: No such device
>>> Sat Jan 13 15:52:34 2024 daemon.err hostapd: Interface initialization failed
>>>
>>> Is there a limition of AP's per device?
>> 
>> Yes. The limit is hardware/driver specific. What chipset are you using?
>> 
> 
> It is a TP-LINK Archer C7. 2.4G wifi is ath9k. I didn't see this issue with an Asus RT-AX53U based on mt7621.

ath9k can do 8 AP interfaces, mt7915 can do 16. That explains why you 
didn't see the issue on RT-AX53U.

- Felix
diff mbox series

Patch

diff --git a/package/network/services/hostapd/files/hostapd.uc b/package/network/services/hostapd/files/hostapd.uc
index 0c89cd71cc..66e4e2353e 100644
--- a/package/network/services/hostapd/files/hostapd.uc
+++ b/package/network/services/hostapd/files/hostapd.uc
@@ -20,6 +20,7 @@  hostapd.data.file_fields = {
  	private_key2: true,
  	dh_file: true,
  	eap_sim_db: true,
+	crl_file: true,
  };
  
  function iface_remove(cfg)