<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello,<o:p></o:p></p>
<p class="MsoNormal">I’ve noticed the wpa_supplicant process on my mesh interfaces leaking memory to the point that the kernel kills the process.<o:p></o:p></p>
<p class="MsoNormal">It was discovered in 18.06.2, but I’ve reproduced it with 18.06.4 and with the master branch from the GitHub repo.  Since the leak occurs as mesh links are created and destroyed, I was able to reproduce it with a simple two-node setup where
 I monitor the wpa_supplicant process VSZ on one node and repeatedly bring wifi up and down on the other node.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’ve traced it back to the 18.06.2 release, specifically to lines 34-35 of package/network/services/hostapd/patches/015-mesh-do-not-use-offchan-mgmt-tx-on-DFS.patch
<o:p></o:p></p>
<p class="MsoNormal">+                 (modes = nl80211_get_hw_feature_data(bss, &num_modes, &flags,<o:p></o:p></p>
<p class="MsoNormal">+                                                                                             &dfs_domain)) &&<o:p></o:p></p>
<p class="MsoNormal">That code was added in a35f24309021c1c0e9cbed0faedf58b941cb4bd3.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I removed the entire patch file to resolve the memory leak because the subsequent call to ieee80211_is_dfs() uses the return value from nl80211_get_hw_feature_data().  However, I know the problem is specifically related to the nl80211_get_hw_feature_data()
 call because I stepped-backward through commits of the hostapd source until I got back to 0f7fc6b98de9c69f511b9b22f2b65553126362eb, where ieee80211_is_dfs() had only one argument and didn’t rely on the nl80211_get_hw_feature_data() return value.  At that point,
 the memory leak still occurred until I commented-out the call to nl80211_get_hw_feature_data().<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I attempted to dive into nl80211_get_hw_feature_data(), but was quickly lost, so I defer to those that are more experienced in that code.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Test platform: Compex WPJ-531 (ar71xx)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">-Nick<o:p></o:p></p>
</div>
</body>
</html>