[reSIProcate] Memory leaks in SipStack::send(.) and SipStack::post(.) ?

Byron Campen bcampen at estacado.net
Tue Sep 25 10:47:10 CDT 2007


	Looking at these traces, it appears that the stack has been shut  
down before it has had a chance to clear out its message queues/timer  
heap. If you still have DEBUG-level logging for this, I can give it a  
look.

Best regards,
Byron Campen

> Hi there!
>
> We make use of resiprocate 1.0.3 in our application, and notice  
> that there are a number of memory leaks for each SIP call, which  
> might be due to our application, or due to the sip stack.
>
> To help to locate the memory leaks, we run our application with a  
> modified version of “malloc” library, which traces all the memory  
> allocation/freeing. Below are the memory leaks in one test scenario  
> (a SIP phone calls another one, which rings for a few seconds, then  
> the call is cancelled).
>
> From the trace, it seems that the memory chunks allocated in  
> SipStack::send(…) and SipStack::post(…), among other things, have  
> not been freed. I’ve already looked through the source codes, but  
> I’m not able to tell from what I’ve seen if these are true memory  
> leaks in the SIP stack, or it is rather because we forget to call a  
> suitable destructor in our application.
>
> So help appreciated.
>
> Regards,
>
> Shaofeng
>
>
> Below are some of the memory allocations that are not freed  
> (complete memory dumps in attached file):
>
> <<malloc_dump_001.txt>>
>
> malloc(47 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>         0x40222aa8<_Znaj+0x68>(/usr/lib/libstdc++.so.6)
>
>         0x568de8<_ZN5resip4DataC1ERKS0_+0x68>
>
>         0x403a9c<_ZN5resip16MergedRequestKeyC1ERKS0_+0xa8>
>
>         0x403798<_ZN5resip27MergedRequestRemovalCommandC1ERKS0_+0xd0>
>
>         0x4038b0<_ZNK5resip27MergedRequestRemovalCommand5cloneEv+0x7c>
>
>          
> 0x4fc524<_ZN5resip8SipStack6postMSERKNS_18ApplicationMessageEjPNS_15Tr 
> ansactionUserE+0xa0>
>
>          
> 0x372fec<_ZN5resip18DialogUsageManager27requestMergedRequestRemovalERK 
> NS_16MergedRequestKeyE+0x10c>
>
>         0x36c6a0<_ZN5resip9DialogSetD0Ev+0x6e0>
>
>         0x42a074<_ZN5resip12DestroyUsage7destroyEv+0x164>
>
>          
> 0x388124<_ZN5resip18DialogUsageManager15internalProcessESt8auto_ptrINS 
> _7MessageEE+0x14c>
>
>         0x388a68<_ZN5resip18DialogUsageManager7processEv+0xac>
>
>         0x316380<proc_iws_dum+0x18c>
>
> malloc(76 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>          
> 0x503a10<_ZNSt8_Rb_treeIN5resip5TimerES1_St9_IdentityIS1_ESt4lessIS1_E 
> SaIS1_EE9_M_insertEPSt18_Rb_tree_node_baseS9_RKS1_+0x74>
>
>          
> 0x503b9c<_ZNSt8_Rb_treeIN5resip5TimerES1_St9_IdentityIS1_ESt4lessIS1_E 
> SaIS1_EE12insert_equalERKS1_+0x68>
>
>         0x503128<_ZN5resip23BaseTimeLimitTimerQueue3addERKNS_5TimerE 
> +0x110>
>
>          
> 0x4fc588<_ZN5resip8SipStack6postMSERKNS_18ApplicationMessageEjPNS_15Tr 
> ansactionUserE+0x104>
>
>          
> 0x372fec<_ZN5resip18DialogUsageManager27requestMergedRequestRemovalERK 
> NS_16MergedRequestKeyE+0x10c>
>
>         0x36c6a0<_ZN5resip9DialogSetD0Ev+0x6e0>
>
>         0x42a074<_ZN5resip12DestroyUsage7destroyEv+0x164>
>
>          
> 0x388124<_ZN5resip18DialogUsageManager15internalProcessESt8auto_ptrINS 
> _7MessageEE+0x14c>
>
>         0x388a68<_ZN5resip18DialogUsageManager7processEv+0xac>
>
>         0x316380<proc_iws_dum+0x18c>
>
> malloc(76 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>          
> 0x503a10<_ZNSt8_Rb_treeIN5resip5TimerES1_St9_IdentityIS1_ESt4lessIS1_E 
> SaIS1_EE9_M_insertEPSt18_Rb_tree_node_baseS9_RKS1_+0x74>
>
>          
> 0x503b9c<_ZNSt8_Rb_treeIN5resip5TimerES1_St9_IdentityIS1_ESt4lessIS1_E 
> SaIS1_EE12insert_equalERKS1_+0x68>
>
>         0x503128<_ZN5resip23BaseTimeLimitTimerQueue3addERKNS_5TimerE 
> +0x110>
>
>          
> 0x4fc588<_ZN5resip8SipStack6postMSERKNS_18ApplicationMessageEjPNS_15Tr 
> ansactionUserE+0x104>
>
>          
> 0x372654<_ZN5resip18DialogUsageManager8addTimerENS_10DumTimeout4TypeEm 
> NS_6HandleINS_9BaseUsageEEEjj+0xc8>
>
>          
> 0x3d0258<_ZN5resip19ServerInviteSession23startRetransmit1xxTimerEv 
> +0x130>
>
>         0x3d0928<_ZN5resip19ServerInviteSession15sendProvisionalEiPc 
> +0xf0>
>
>         0x3d1af8<_ZN5resip19ServerInviteSession11provisionalEiPc+0xf8>
>
>          
> 0x324cd4<_Z20iws_EsigTrIpNewSessAP12TERM_CONTEXTP15IWST_SIG_MSG_UC 
> +0x160>
>
>         0x327e44<_Z19iws_EsigTrWaitMediaP12TERM_CONTEXTh+0x45c>
>
>          
> 0x320388<_Z16iws_MedTrIpOfferP12TERM_CONTEXTP15IWST_SIG_MSG_UC+0x198>
>
>          
> 0x325148<_Z18iws_EsigTraitIpMsgP13IWSST_DUM_MSGP12TERM_CONTEXTP15IWST_ 
> SIG_MSG_UC+0x210>
>
>         0x31c7cc<proc_iws_ctrl+0x800>
>
> malloc(76 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>          
> 0x503a10<_ZNSt8_Rb_treeIN5resip5TimerES1_St9_IdentityIS1_ESt4lessIS1_E 
> SaIS1_EE9_M_insertEPSt18_Rb_tree_node_baseS9_RKS1_+0x74>
>
>          
> 0x503b9c<_ZNSt8_Rb_treeIN5resip5TimerES1_St9_IdentityIS1_ESt4lessIS1_E 
> SaIS1_EE12insert_equalERKS1_+0x68>
>
>         0x503128<_ZN5resip23BaseTimeLimitTimerQueue3addERKNS_5TimerE 
> +0x110>
>
>          
> 0x4fc588<_ZN5resip8SipStack6postMSERKNS_18ApplicationMessageEjPNS_15Tr 
> ansactionUserE+0x104>
>
>          
> 0x372654<_ZN5resip18DialogUsageManager8addTimerENS_10DumTimeout4TypeEm 
> NS_6HandleINS_9BaseUsageEEEjj+0xc8>
>
>          
> 0x3d0258<_ZN5resip19ServerInviteSession23startRetransmit1xxTimerEv 
> +0x130>
>
>         0x3d0928<_ZN5resip19ServerInviteSession15sendProvisionalEiPc 
> +0xf0>
>
>         0x3d1af8<_ZN5resip19ServerInviteSession11provisionalEiPc+0xf8>
>
>          
> 0x325738<_Z17iws_EsigTrUcAlertP12TERM_CONTEXTP15IWST_SIG_MSG_UC+0x124>
>
>         0x328564<_Z18iws_EsigTraitUcMsgP6SIGNAL+0x2bc>
>
>         0x31c3ec<proc_iws_ctrl+0x420>
>
> malloc(708 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>          
> 0x4fbda8<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0xf4>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
>          
> 0x371800<_ZN5resip11DialogUsage4sendENS_9SharedPtrINS_10SipMessageEEE+ 
> 0xc4>
>
>          
> 0x3d4d84<_ZN5resip19ServerInviteSession14dispatchCancelERKNS_10SipMess 
> ageE+0x388>
>
>          
> 0x3d57b0<_ZN5resip19ServerInviteSession20dispatchOfferOrEarlyERKNS_10S 
> ipMessageE+0x138>
>
>         0x358334<_ZN5resip6Dialog8dispatchERKNS_10SipMessageE+0xc28>
>
>          
> 0x36004c<_ZN5resip9DialogSet20dispatchToAllDialogsERKNS_10SipMessageE+ 
> 0x48>
>
>         0x366e70<_ZN5resip9DialogSet8dispatchERKNS_10SipMessageE 
> +0x29bc>
>
>          
> 0x385e50<_ZN5resip18DialogUsageManager14processRequestERKNS_10SipMessa 
> geE+0x73c>
>
>          
> 0x387d8c<_ZN5resip18DialogUsageManager15incomingProcessESt8auto_ptrINS 
> _7MessageEE+0x8a0>
>
>          
> 0x388704<_ZN5resip18DialogUsageManager15internalProcessESt8auto_ptrINS 
> _7MessageEE+0x72c>
>
>         0x388a68<_ZN5resip18DialogUsageManager7processEv+0xac>
>
> malloc(16 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>         0x4da698<_ZN5resip10SipMessageaSERKS0_+0x220>
>
>         0x4dad70<_ZN5resip10SipMessageC1ERKS0_+0x1a8>
>
>          
> 0x4fbdbc<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0x108>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
>          
> 0x371800<_ZN5resip11DialogUsage4sendENS_9SharedPtrINS_10SipMessageEEE+ 
> 0xc4>
>
>          
> 0x3d4d84<_ZN5resip19ServerInviteSession14dispatchCancelERKNS_10SipMess 
> ageE+0x388>
>
>          
> 0x3d57b0<_ZN5resip19ServerInviteSession20dispatchOfferOrEarlyERKNS_10S 
> ipMessageE+0x138>
>
>         0x358334<_ZN5resip6Dialog8dispatchERKNS_10SipMessageE+0xc28>
>
>          
> 0x36004c<_ZN5resip9DialogSet20dispatchToAllDialogsERKNS_10SipMessageE+ 
> 0x48>
>
>         0x366e70<_ZN5resip9DialogSet8dispatchERKNS_10SipMessageE 
> +0x29bc>
>
>          
> 0x385e50<_ZN5resip18DialogUsageManager14processRequestERKNS_10SipMessa 
> geE+0x73c>
>
>          
> 0x387d8c<_ZN5resip18DialogUsageManager15incomingProcessESt8auto_ptrINS 
> _7MessageEE+0x8a0>
>
> malloc(1 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>         0x5574b8<_ZN5resip20HeaderFieldValueListC1ERKS0_+0x88>
>
>         0x4da6b0<_ZN5resip10SipMessageaSERKS0_+0x238>
>
>         0x4dad70<_ZN5resip10SipMessageC1ERKS0_+0x1a8>
>
>          
> 0x4fbdbc<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0x108>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
>          
> 0x371800<_ZN5resip11DialogUsage4sendENS_9SharedPtrINS_10SipMessageEEE+ 
> 0xc4>
>
>          
> 0x3d4d84<_ZN5resip19ServerInviteSession14dispatchCancelERKNS_10SipMess 
> ageE+0x388>
>
>          
> 0x3d57b0<_ZN5resip19ServerInviteSession20dispatchOfferOrEarlyERKNS_10S 
> ipMessageE+0x138>
>
>         0x358334<_ZN5resip6Dialog8dispatchERKNS_10SipMessageE+0xc28>
>
>          
> 0x36004c<_ZN5resip9DialogSet20dispatchToAllDialogsERKNS_10SipMessageE+ 
> 0x48>
>
>         0x366e70<_ZN5resip9DialogSet8dispatchERKNS_10SipMessageE 
> +0x29bc>
>
>          
> 0x385e50<_ZN5resip18DialogUsageManager14processRequestERKNS_10SipMessa 
> geE+0x73c>
>
> malloc(20 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>         0x463ec0<_ZNK5resip15ParserContainerINS_3ViaEE5cloneEv+0x68>
>
>         0x557614<_ZN5resip20HeaderFieldValueListC1ERKS0_+0x1e4>
>
>         0x4da6b0<_ZN5resip10SipMessageaSERKS0_+0x238>
>
>         0x4dad70<_ZN5resip10SipMessageC1ERKS0_+0x1a8>
>
>          
> 0x4fbdbc<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0x108>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
>          
> 0x371800<_ZN5resip11DialogUsage4sendENS_9SharedPtrINS_10SipMessageEEE+ 
> 0xc4>
>
>          
> 0x3d4d84<_ZN5resip19ServerInviteSession14dispatchCancelERKNS_10SipMess 
> ageE+0x388>
>
>          
> 0x3d57b0<_ZN5resip19ServerInviteSession20dispatchOfferOrEarlyERKNS_10S 
> ipMessageE+0x138>
>
>         0x358334<_ZN5resip6Dialog8dispatchERKNS_10SipMessageE+0xc28>
>
>          
> 0x36004c<_ZN5resip9DialogSet20dispatchToAllDialogsERKNS_10SipMessageE+ 
> 0x48>
>
>         0x366e70<_ZN5resip9DialogSet8dispatchERKNS_10SipMessageE 
> +0x29bc>
>
> malloc(188 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>         0x4393dc<_ZNK5resip3Via5cloneEv+0x68>
>
>         0x4a8304<_ZN5resip19ParserContainerBaseC2ERKS0_+0xe0>
>
>         0x463ed8<_ZNK5resip15ParserContainerINS_3ViaEE5cloneEv+0x80>
>
>         0x557614<_ZN5resip20HeaderFieldValueListC1ERKS0_+0x1e4>
>
>         0x4da6b0<_ZN5resip10SipMessageaSERKS0_+0x238>
>
>         0x4dad70<_ZN5resip10SipMessageC1ERKS0_+0x1a8>
>
>          
> 0x4fbdbc<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0x108>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
>          
> 0x371800<_ZN5resip11DialogUsage4sendENS_9SharedPtrINS_10SipMessageEEE+ 
> 0xc4>
>
>          
> 0x3d4d84<_ZN5resip19ServerInviteSession14dispatchCancelERKNS_10SipMess 
> ageE+0x388>
>
>          
> 0x3d57b0<_ZN5resip19ServerInviteSession20dispatchOfferOrEarlyERKNS_10S 
> ipMessageE+0x138>
>
>         0x358334<_ZN5resip6Dialog8dispatchERKNS_10SipMessageE+0xc28>
>
> malloc(92 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>         0x43ca3c<_ZNK5resip15BranchParameter5cloneEv+0x68>
>
>         0x4a6ef8<_ZN5resip14ParserCategory18copyParametersFromERKS0_ 
> +0x48>
>
>         0x4a725c<_ZN5resip14ParserCategoryC2ERKS0_+0xd4>
>
>         0x4391c8<_ZN5resip3ViaC1ERKS0_+0x70>
>
>         0x4393f0<_ZNK5resip3Via5cloneEv+0x7c>
>
>         0x4a8304<_ZN5resip19ParserContainerBaseC2ERKS0_+0xe0>
>
>         0x463ed8<_ZNK5resip15ParserContainerINS_3ViaEE5cloneEv+0x80>
>
>         0x557614<_ZN5resip20HeaderFieldValueListC1ERKS0_+0x1e4>
>
>         0x4da6b0<_ZN5resip10SipMessageaSERKS0_+0x238>
>
>         0x4dad70<_ZN5resip10SipMessageC1ERKS0_+0x1a8>
>
>          
> 0x4fbdbc<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0x108>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
> malloc(4 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>          
> 0x33ff7c<_ZNSt6vectorIPN5resip14ParserCategoryESaIS2_EE13_M_insert_aux 
> EN9__gnu_cxx17__normal_iteratorIPS2_S4_EERKS2_+0x80>
>
>         0x4a83bc<_ZN5resip19ParserContainerBaseC2ERKS0_+0x198>
>
>         0x463ed8<_ZNK5resip15ParserContainerINS_3ViaEE5cloneEv+0x80>
>
>         0x557614<_ZN5resip20HeaderFieldValueListC1ERKS0_+0x1e4>
>
>         0x4da6b0<_ZN5resip10SipMessageaSERKS0_+0x238>
>
>         0x4dad70<_ZN5resip10SipMessageC1ERKS0_+0x1a8>
>
>          
> 0x4fbdbc<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0x108>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
>          
> 0x371800<_ZN5resip11DialogUsage4sendENS_9SharedPtrINS_10SipMessageEEE+ 
> 0xc4>
>
>          
> 0x3d4d84<_ZN5resip19ServerInviteSession14dispatchCancelERKNS_10SipMess 
> ageE+0x388>
>
>          
> 0x3d57b0<_ZN5resip19ServerInviteSession20dispatchOfferOrEarlyERKNS_10S 
> ipMessageE+0x138>
>
>         0x358334<_ZN5resip6Dialog8dispatchERKNS_10SipMessageE+0xc28>
>
> malloc(4 bytes): 0x402227f8<_Znwj+0x6c>(/usr/lib/libstdc++.so.6)
>
>          
> 0x33ff7c<_ZNSt6vectorIPN5resip14ParserCategoryESaIS2_EE13_M_insert_aux 
> EN9__gnu_cxx17__normal_iteratorIPS2_S4_EERKS2_+0x80>
>
>         0x4a83bc<_ZN5resip19ParserContainerBaseC2ERKS0_+0x198>
>
>          
> 0x4fb508<_ZNK5resip15ParserContainerINS_10StatusLineEE5cloneEv+0x80>
>
>         0x557614<_ZN5resip20HeaderFieldValueListC1ERKS0_+0x1e4>
>
>         0x4daa5c<_ZN5resip10SipMessageaSERKS0_+0x5e4>
>
>         0x4dad70<_ZN5resip10SipMessageC1ERKS0_+0x1a8>
>
>          
> 0x4fbdbc<_ZN5resip8SipStack4sendERKNS_10SipMessageEPNS_15TransactionUs 
> erE+0x108>
>
>          
> 0x382a8c<_ZN5resip18DialogUsageManager15outgoingProcessESt8auto_ptrINS 
> _7MessageEE+0xf1c>
>
>          
> 0x38396c<_ZN5resip18DialogUsageManager4sendENS_9SharedPtrINS_10SipMess 
> ageEEE+0x5b4>
>
>          
> 0x356ff8<_ZN5resip6Dialog4sendENS_9SharedPtrINS_10SipMessageEEE+0x1ec>
>
>          
> 0x371800<_ZN5resip11DialogUsage4sendENS_9SharedPtrINS_10SipMessageEEE+ 
> 0xc4>
>
>          
> 0x3d4d84<_ZN5resip19ServerInviteSession14dispatchCancelERKNS_10SipMess 
> ageE+0x388>
>
>          
> 0x3d57b0<_ZN5resip19ServerInviteSession20dispatchOfferOrEarlyERKNS_10S 
> ipMessageE+0x138>
>
>         0x358334<_ZN5resip6Dialog8dispatchERKNS_10SipMessageE+0xc28>
>
>
> <malloc_dump_001.txt>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at list.resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20070925/41d4ce93/attachment.htm>


More information about the resiprocate-devel mailing list