Re: Regression: net/ipv6/mld running system out of memory (not a leak)
From: Rafał Miłecki <zajec5@gmail.com>
Date: 2020-02-12 08:46:34
On 12.02.2020 08:59, Eric Dumazet wrote:
On 2/11/20 11:37 PM, Rafał Miłecki wrote:quoted
Hi, I need some help with my devices running out of memory. I've debugging skills but I don't know net subsystem. I run Linux based OpenWrt distribution on home wireless devices (ARM routers and access points with brcmfmac wireless driver). I noticed that using wireless monitor mode interface results in my devices (128 MiB RAM) running out of memory in about 2 days. This is NOT a memory leak as putting wireless down brings back all the memory. Interestingly this memory drain requires at least one of: net.ipv6.conf.default.forwarding=1 net.ipv6.conf.all.forwarding=1 to be set. OpenWrt happens to use both by default. This regression was introduced by the commit 1666d49e1d41 ("mld: do not remove mld souce list info when set link down") - first appeared in 4.10 and then backported. This bug exists in 4.9.14 and 4.14.169. Reverting that commit from 4.9.14 and 4.14.169 /fixes/ the problem. Can you look at possible cause/fix of this problem, please? Is there anything I can test or is there more info I can provide? I'm not sure why this issue appears only when using monitor mode. Using wireless __ap mode interface (with hostapd) won't expose this issue. I guess it may be a matter of monitor interfaces not being bridged?This commit had few fixes, are you sure they were applied to your kernel ?
Thanks for looking at this! Unfortunately I already have all listed patches so it has to be yet another issue.
9c8bb163ae784be4f79ae504e78c862806087c54 igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()
First included in v4.10-rc8, so it's present in my 4.14.169.
08d3ffcc0cfaba36f6b86fd568cc3bc773061fa6 multicast: do not restore deleted record source filter mode to new one
First included in v4.18-rc8, so it's present in my 4.14.169.
a84d016479896b5526a2cc54784e6ffc41c9d6f6 mld: fix memory leak in mld_del_delrec()
Backported to linux-4.14.y as df9c0f8a15c283b3339ef636642d3769f8fbc434 and first included in v4.14.143, so it's present in my 4.14.169.