[reSIProcate] resiprocate stack memeory leak?????

Byron Campen bcampen at estacado.net
Wed Sep 20 20:03:40 CDT 2006


	Most OSes do not reclaim unused memory from a process until some  
other process needs it. So, unless there is not enough memory to go  
around, that 400MB figure won't drop, even if there is no traffic.  
However, If your memory is not reaching a steady-state under load,  
you should look through the logs for output from RESIP:STATISTICS,  
after you have stopped throwing traffic. This will report the current  
size of the important data structures in the stack (such as the maps  
of TransactionStates, the current size of the TimerQueue, and the  
number of messages waiting in the mStateMachineFifo). One of these  
logs is written once a minute, so you should have a pretty good idea  
of how much memory is being used by what at any given time. Please  
reply with what you find.

	As for your questions about AbstractFifo, I am unsure why mSize is  
needed. Can anyone answer this (or, answer why clear is a no-op)?

Best regards,
Byron Campen

> Hi All,
>
> I used svn to get the latest resip stack on Aug. 4, 2006 and build a
> simple applications.
> If the call rate is  20 per second, there is no memory leak (the  
> memory
> status stable) and stay about 200 mega bytes.
> If the calls rate is 100 to 200 per second, the memory usage increases
> dramatically from 200 megabytes to about 400 megabytes for 2 hour  
> durations.
> The memory usage will not go down even after the call generator  
> stopped
> for more than 4 hours.
>
> So valgrind is used to monitor the memory leak, and it did not show  
> any.
>
>  resiprocate stack must hold the memory.
>
> I try to use the size of mStateMachineFifo to control the number of
> incoming sip  request msg if the size exceeds certain limit, but the
> size may get wrong size of NoSize defined by AbstractFifo.hxx when  
> clear
> func is called.
>
> My question about  rutil/AbstractFifo.hxx:
>      since std::deque mFifo is defined, there is no need to define  
> mSize
> since the size of msg can get from mFifo.size().
>      Why mSize is assigned NoSize which is 0U-1 when func clear is
> called.  mSize should be 0 fro this case.
>      So mStateMachineFifo.size cannot be trusted since it can be 0U-1
> even if the mFifo is empty after clear() is called.
>
> -- 
> Thanks
>
> Frank Yuan
>
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at list.sipfoundry.org
> https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2369 bytes
Desc: not available
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20060920/396d034e/attachment.bin>


More information about the resiprocate-devel mailing list