FreeBSD 4.9 losing mbufs!!!

Stephen Clark Stephen.Clark at seclark.us
Mon Apr 24 14:48:06 UTC 2006


Robert Watson wrote:

>On Tue, 18 Apr 2006, Stephen Clark wrote:
>
>  
>
>>I have discovered that if I disable quaqqa/ospfd then I don't lose mbufs! 
>>This makes it appear that the mbuf leak is in the multicast routing logic. 
>>In fact I lose mbufs even with the both system basically idle but with a 100 
>>vpn/gre with multicast going on thru the gre then the vpn.
>>
>>Any ideas on where to focus my continued investigation?
>>
>>Thanks to everybody who has responded.
>>    
>>
>
>Steve,
>
>Sorry not to have caught this thread earlier; I've been on travel for the last 
>few weeks.  My general suggestion would be to try to narrow the code paths 
>traversed to try to eliminate as much code as possible from the search.  It 
>sounds like you've done that pretty effectively :-).
>
>Typically, memory leaks occur in edge error cases, where the memory is not 
>properly released, or ownership is unclear.  My suggestion would be to add 
>counters (or look at existing counters where already present) and see if 
>there's an error case being triggered in about the same quantity that mbuf 
>leakage is occuring.  Chances are, there's an error being returned and a 
>missing m_freem().
>
>Based on your comments above, I might also pay attention to the routing socket 
>path -- the rate of leak could correspond to the routing daemons talking to 
>the network stack, rather than the rate of traffic.  For example, it could be 
>that one of the routing messages is handled improperly resulting in a leak.
>
>Unfortunately, tracking down memory leaks can be quite difficult, and tends to 
>require a combination of dogged persistence and luck...
>
>Robert N M Watson
>
>  
>
Robert,

Thanks for your response. I am in the process of moving our app to 6. 
stable to see if the problem still exists. If it does then maybe I can't 
generate some enthusiasm form the FreeBSD
community to take moew of an interest in the problem. I have a lot of C 
experience but not with the *BSD network stack, still trying to get a 
good understanding of the flow of the packets thru the stack.

Our next release will be based on 6 but that is months away. We have 
some Athon 64 X2 we are putting in that will handling 100 to 200 vpn/gre 
tunnels and right now ipintrq slowly grows
which eventually forces a reboot of the systems. Fortune 2000 companies 
don't like see that happen.

Regards,
Steve

-- 

"They that give up essential liberty to obtain temporary safety, 
deserve neither liberty nor safety."  (Ben Franklin)

"The course of history shows that as a government grows, liberty 
decreases."  (Thomas Jefferson)





More information about the freebsd-stable mailing list