[reSIProcate] DUM process loop crashes on TCP connection close initiated by peer
Shaofeng Li
shaofeng_li at yahoo.com
Fri Oct 26 09:27:00 CDT 2007
Hi Byron,
Under gdb, the segmentation fault is due to ~auto_ptr(), and that stack trace shows that the crash occurs just on the DUM process loop line "while(dumUas->process())".
There is only one auto_ptr inside DialogUsageManager::process().
DialogUsageManager::process()
{
if (mFifo.messageAvailable())
{
internalProcess(std::auto_ptr<Message>(mFifo.getNext()));
}
return mFifo.messageAvailable();
}
My guess is that this is the auto_ptr that causes the crash when it leaves its scope and ~auto_ptr() gets called.
Kind regards,
Shaofeng
----- Original Message ----
From: Byron Campen <bcampen at estacado.net>
To: Shaofeng Li <shaofeng_li at yahoo.com>
Cc: resiprocate-devel at resiprocate.org
Sent: Friday, October 26, 2007 3:34:40 PM
Subject: Re: [reSIProcate] DUM process loop crashes on TCP connection close initiated by peer
You're going to have to be more specific; where is the error
occurring? There are lots of places where auto_ptr is used in the
code. It may be that the problem has been fixed in the latest release.
Best regards,
Byron Campen
> Hi,
>
> We're running reSIProcate (rev 1.0.3) on our IPBX to connect to an
> operator network for SIP trunking. The SIP trunking works fine when
> the UDP transport is used. However, when we change the transport to
> TCP, the SIP stack crashes on the connection close initiated by the
> operator network. The test scenario is as follows:
>
> register to operator network using tcp transport
> ... wait some time while being inactive ...
> ... receive TCP [FIN, ACK] from operator network => causing DUM
> process loop to crash.
>
> Our application and DUM/stack run in separate processes. We
> basically run the typical DUM process loop as follows:
>
> while (!dumShutDown)
> {
> FdSet fdset;
> stack->buildFdSet(fdset);
> int err = fdset.selectMilliSeconds(stack-
> >getTimeTillNextProcessMS());
> assert ( err != -1 );
> stack->process(fdset);
> while(dumUas->process());
> }
>
> The DUM process loop crashes (segmentation fault) on ~auto_ptr() call.
>
> Can anyone help?
>
> Is this a known problem fixed in a version later than 1.0.3?
>
> Kind regards,
> Shaofeng
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20071026/066bb6ca/attachment.htm>
More information about the resiprocate-devel
mailing list