RE: [reSIProcate] Memory leak problem...
You need to delete the message you receive from sipStack->receive().
-----Original Message-----
From: Gur [mailto:gurgurk@xxxxxxxxx]
Sent: Monday, April 11, 2005 4:13 AM
To: Scott Godin; resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Cc: gurgurk@xxxxxxxxx
Subject: RE: [reSIProcate] Memory leak problem...
Thanks Scott.
Actually, I had checked that e-mail before my question
and it seems to me that I am calling process() method
and memory stays at that level even for hours after
all sessions are terminated. Additionally, the stack
log indicates the transaction states are deleted.
I have attached the code segment which is run by a
thread for collecting sip messages from the stack. Can
this cause that behaviour?
Cheers,
Gur
************************
int foo()
{
int err;
SipMessage* received;
FdSet fdset;
while (TRUE) {
sipse_->sipStack->buildFdSet(fdset);
err =
fdset.selectMilliSeconds(sipse_->sipStack->getTimeTillNextProcessMS());
sipse_->sipStack->process(fdset);
//assert (err != -1);
if (err != -1){
//LOG_WRITE(LOG_DEBUG,"getting message from
stack...");
received = (sipse_->sipStack->receive());
if (received != NULL)
{
SipseQueueMessage sipseQueueMessage;
sipseQueueMessage.isSipMessage = true;
sipseQueueMessage.isMfMessage = false;
sipseQueueMessage.queuedSipMessage = received;
//cerr << "Sending message to remote task
-consumer-" ;
LOG_WRITE(LOG_DEBUG, "Sending message to remote
task -consumer-");
queueWrite (
consumer_->internalQueue , HIGH_MESSAGE_PRIORITY , (
UINT8 * ) &sipseQueueMessage , sizeof
(SipseQueueMessage) );
LOG_WRITE ( LOG_DEBUG , "Message put to consumer
queue from Sip stack!!");
} else {
// LOG_WRITE(LOG_ERROR, "REC. MESSAGE IS
NULL.");
}
} else {
// LOG_WRITE(LOG_ERROR, "ERR = %d", err);
}
}
}
--- Scott Godin <slgodin@xxxxxxxxxxxx> wrote:
> Try reading the following, it is most likely the
> same issue:
>
>
http://list.sipfoundry.org/archive/resiprocate-devel/msg02029.html
>
>
>
> -----Original Message-----
> From: Gur [mailto:gurgurk@xxxxxxxxx]
> Sent: Sunday, April 10, 2005 11:45 AM
> To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> Subject: [reSIProcate] Memory leak problem...
>
> Hi,
> I am trying to develop a prototype SIP-based
> application using resiprocate. For processing SIP
> messages, I simply use the Helper::makeResponse()
> method for creating responses and then stack->send()
> to send them. Then I delete both the received
> request
> and made-up response in TU space.
>
> I have tested the application using the SIPp test
> suite following the scenario below:
>
> SIPp Application
> INVITE ---------------->
> <---------------- 180
> <---------------- 200
> ACK ---------------->
> (wait for 500 ms.)
> BYE ---------------->
> <---------------- 200
>
> For about 80,000 sessions, the memory shoots up
> about
> 700 MBytes on a Solaris9 platform. I have used
> Purify
> for diagnosis and the leak seems to happen for each
> OK
> response copy-constructed into the stack for INVITE
> messsages. The transactions in the stack seem to be
> properly handled in the log (or am i wrong? :) The
> TU
> space (application) is apparently clean.
>
> I doubt I use the stack in a fundamentally wrong
> way.
> Does anyone have any ideas?
>
> Cheers,
> Gur
>
> PS.I have attached the stack log in debug mode.
>
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Small Business - Try our new resources site!
> http://smallbusiness.yahoo.com/resources/
>
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/