Regression: netlink fail (triggered by iw) removes extra wlan (phy) interface

4 messages, 2 authors, 2016-05-04 · open the first message on its own page

Regression: netlink fail (triggered by iw) removes extra wlan (phy) interface

From: Rafał Miłecki <zajec5@gmail.com>
Date: 2016-02-25 13:23:03

Hi,

After updating kernel in OpenWrt from 4.1.6 to 4.1.10 I noticed that
if "iw" command fails (which happens very rarely) my wlan0-1 interface
disappears. To trigger this problem easily I'm using this trivial
script:
while [ 1 ]
do
        iw phy phy0 interface add mon0 type monitor
        ifconfig mon0 up
        iw dev mon0 del
done

Whenever it goes wrong I see:
Failed to connect to generic netlink.
kern.info kernel: [ 1933.114338] br-lan: port 3(wlan0-1) entered disabled state
kern.info kernel: [ 1933.335568] device wlan0-1 left promiscuous mode
kern.info kernel: [ 1933.340385] br-lan: port 3(wlan0-1) entered disabled state
daemon.notice netifd: Network device 'wlan0-1' link is down
command failed: Too many open files in system (-23)

This regression is caused by commit:
4e27762 netlink: Fix autobind race condition that leads to zero port ID
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=4e27762417669cb459971635be550eb7b5598286
that is a backport of upstream:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1f770c0a09da855a2b51af6d19de97fb955eca85

This still happens with kernel 4.4.

My hardware is Linksys WRT160NL (Atheros AR9130 SoC) and I'm using two
__ap interfaces on phy0 (wlan0 and wlan0-1).

Could you take a look at this?
Is there some additional info I could provide to help fixing this?

-- 
Rafał

Re: Regression: netlink fail (triggered by iw) removes extra wlan (phy) interface

From: Rafał Miłecki <zajec5@gmail.com>
Date: 2016-03-16 12:01:00

On 25 February 2016 at 14:22, Rafał Miłecki [off-list ref] wrote:
After updating kernel in OpenWrt from 4.1.6 to 4.1.10 I noticed that
if "iw" command fails (which happens very rarely) my wlan0-1 interface
disappears. To trigger this problem easily I'm using this trivial
script:
while [ 1 ]
do
        iw phy phy0 interface add mon0 type monitor
        ifconfig mon0 up
        iw dev mon0 del
done

Whenever it goes wrong I see:
Failed to connect to generic netlink.
kern.info kernel: [ 1933.114338] br-lan: port 3(wlan0-1) entered disabled state
kern.info kernel: [ 1933.335568] device wlan0-1 left promiscuous mode
kern.info kernel: [ 1933.340385] br-lan: port 3(wlan0-1) entered disabled state
daemon.notice netifd: Network device 'wlan0-1' link is down
command failed: Too many open files in system (-23)

This regression is caused by commit:
4e27762 netlink: Fix autobind race condition that leads to zero port ID
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=4e27762417669cb459971635be550eb7b5598286
that is a backport of upstream:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1f770c0a09da855a2b51af6d19de97fb955eca85

This still happens with kernel 4.4.

My hardware is Linksys WRT160NL (Atheros AR9130 SoC) and I'm using two
__ap interfaces on phy0 (wlan0 and wlan0-1).

Could you take a look at this?
Is there some additional info I could provide to help fixing this?
Ping?

-- 
Rafał

Re: Regression: netlink fail (triggered by iw) removes extra wlan (phy) interface

From: Cong Wang <hidden>
Date: 2016-03-16 16:01:12

On Thu, Feb 25, 2016 at 5:22 AM, Rafał Miłecki [off-list ref] wrote:
Hi,

After updating kernel in OpenWrt from 4.1.6 to 4.1.10 I noticed that
if "iw" command fails (which happens very rarely) my wlan0-1 interface
disappears. To trigger this problem easily I'm using this trivial
script:
while [ 1 ]
do
        iw phy phy0 interface add mon0 type monitor
        ifconfig mon0 up
        iw dev mon0 del
done

Whenever it goes wrong I see:
Failed to connect to generic netlink.
kern.info kernel: [ 1933.114338] br-lan: port 3(wlan0-1) entered disabled state
kern.info kernel: [ 1933.335568] device wlan0-1 left promiscuous mode
kern.info kernel: [ 1933.340385] br-lan: port 3(wlan0-1) entered disabled state
daemon.notice netifd: Network device 'wlan0-1' link is down
command failed: Too many open files in system (-23)
Note, for 4.1, the backport is known to be incorrect, and it is
fixed later by:

https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/net/netlink/af_netlink.c?h=linux-4.1.y&id=a52ec6de6d1638e8c203d7188c55627f75371612

This regression is caused by commit:
4e27762 netlink: Fix autobind race condition that leads to zero port ID
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=4e27762417669cb459971635be550eb7b5598286
that is a backport of upstream:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1f770c0a09da855a2b51af6d19de97fb955eca85

This still happens with kernel 4.4.

Looks like the goto is missing in 4.4 branch too. ;) Mind to send a patch
to GregKH?

My hardware is Linksys WRT160NL (Atheros AR9130 SoC) and I'm using two
__ap interfaces on phy0 (wlan0 and wlan0-1).

Could you take a look at this?
Is there some additional info I could provide to help fixing this?

--
Rafał

Re: Regression: netlink fail (triggered by iw) removes extra wlan (phy) interface

From: Rafał Miłecki <zajec5@gmail.com>
Date: 2016-05-04 13:33:07

Hi again and sorry for the late reply.

On 16 March 2016 at 17:00, Cong Wang [off-list ref] wrote:
On Thu, Feb 25, 2016 at 5:22 AM, Rafał Miłecki [off-list ref] wrote:
quoted
After updating kernel in OpenWrt from 4.1.6 to 4.1.10 I noticed that
if "iw" command fails (which happens very rarely) my wlan0-1 interface
disappears. To trigger this problem easily I'm using this trivial
script:
while [ 1 ]
do
        iw phy phy0 interface add mon0 type monitor
        ifconfig mon0 up
        iw dev mon0 del
done

Whenever it goes wrong I see:
Failed to connect to generic netlink.
kern.info kernel: [ 1933.114338] br-lan: port 3(wlan0-1) entered disabled state
kern.info kernel: [ 1933.335568] device wlan0-1 left promiscuous mode
kern.info kernel: [ 1933.340385] br-lan: port 3(wlan0-1) entered disabled state
daemon.notice netifd: Network device 'wlan0-1' link is down
command failed: Too many open files in system (-23)
Note, for 4.1, the backport is known to be incorrect, and it is
fixed later by:

https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/net/netlink/af_netlink.c?h=linux-4.1.y&id=a52ec6de6d1638e8c203d7188c55627f75371612

quoted
This regression is caused by commit:
4e27762 netlink: Fix autobind race condition that leads to zero port ID
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=4e27762417669cb459971635be550eb7b5598286
that is a backport of upstream:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1f770c0a09da855a2b51af6d19de97fb955eca85

This still happens with kernel 4.4.

Looks like the goto is missing in 4.4 branch too. ;) Mind to send a patch
to GregKH?
So I just tried kernel 4.1.23 and got that problem again while running
my bash script:

Failed to connect to generic netlink.
ifconfig: SIOCGIFFLAGS: No such device
command failed: No such device (-19)
[ 2200.114464] br-lan: port 3(wlan0-1) entered disabled state
[ 2200.125979] device wlan0-1 left promiscuous mode
[ 2200.134529] br-lan: port 3(wlan0-1) entered disabled state
Failed to connect to generic netlink.
ifconfig: SIOCGIFFLAGS: No such device
command failed: No such device (-19)

-- 
Rafał
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help